c语言中函数的返回值到底是什么意思,有什么用

c语言中函数的返回值到底是什么意思,有什么用,第1张

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

函数可以有返回值,也可以没有返回值。

1、没有返回值的函数:功能只是完成一个 *** 作,应将返回值类型定义为void,函数体内可没有return语句。

2、有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。

一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。

扩展资料

C程序中的print函数:

是这样写的:printf("%d\n",printf("%d",printf("%d",i)));

一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:

代号A: printf("%d",printf("%d",i));

代号B: printf("%d",i)

则C程序代码可以简化为:printf("%d\n",A); 那么我们就先来求A。而A,又可以简化为:printf("%d",B);那么就先来求B。

B是 printf("%d",i),打印出“123”,即在C语言运行结果中,你最先看到的是123。C语言printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3。

那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。

而打印出的3是1个字符,因此A就是1,那么printf("%d\n",A); 实际上就是printf("%d\n",1); 打印出1。

-返回值

这句话出现在printf函数或scanf函数中,是与C语言兼容的一种函数输入输出方式。双引号括起来的叫做格式字符串,用来说明输入或者输出的格式。

例如:printf("i=%d\n",a); 其中i=是普通字符原样输出到屏幕上,%d是格式字符用来对应后面需要输出的一个变量,说明变量将要按照有符号整数格式输出。

最后的\n是换行符,在输出完毕后,把光标移到下一行的开头。

扩展资料

printf 函数的一般形式为:

1 int printf(const char format, [argument]);

以上形式,我们在Visual C++里输入“printf”(将会看到)。

说明printf函数类型为整型,其返回值是整型值。

其值为printf实际控制输出的字符数。

printf函数实际上是将所有参数按字符输出,根据该函数的参数1(const char format),我们不难理解。例如:

1 int a=6, b;//a的值为62 b = 24;//b的值为

243 printf( "the value of printf is:%d\n", a );4 printf( "%d\n", b );

参考资料:

printf

回调函数 就是上层调用 设置下去

底层通过函数指针调用上层函数

多文件中才有用 单文件可以模拟

比如

#include <stdioh>

typedef void (pFuncCb) (int);//定义回调函数。

void callback1(int a)

{

    printf("callback function1 is called and parameter = %d\n", a);//打印1

}

void callback2(int a)

{

    printf("callback function2 is called and parameter = %d\n", a);//打印2

}

pFuncCb callback_function;

void lowerFunc(int n)

{

    int i;

    for(i = n; i < n+10; i ++)

        if(callback_function) callback_function(i);

}

int main()

{

    callback_function = callback1;

    lowerFunc(1);// 会打印十次 打印1, 1到10

    callback_function =NULL;

    lowerFunc(10);//没有打印。

    

    callback_function = callback2;

    lowerFunc(100);// 会打印十次 打印2, 100到110

    

    return 0;

}

C语言是通过printf()函数和scanf()函数来进行输入和输出。

printf()格式化输出函数,C语言标准库函数,在 stdioh 中定义。一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为:printf("<格式化字符串>", <参量表>)。输出的字符串除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。 

scanf()格式化输入函数。与printf函数一样,都被声明在头文件stdioh里,因此在使用scanf函数时要加上#include <stdioh>。scanf()函数的调用格式为:scanf("<格式说明符>", <参量表>)。按用户指定的格式从键盘上把数据输入到指定的变量之中。

扩展资料:

printf("<格式化字符串>", <参量表>);

格式化字符串包含三种对象,分别为:

(1)字符串常量;

(2)格式控制字符串;

(3)转义字符。

字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。 

printf函数是格式控制输出函数,也就是在它后面的一对()内前半部分是一对双引号的部分,如果双引号里面有类似于%d

或者%f之类的东西,才可以输出双引号后面的变量a,而你这个输出里没有格式控制的东西。\x03是十六进制的一个字符,具体是哪个字符你可以去查阅ASCII码表,一般我们可以用一般字符表示形式,十六进制,和八进制形式来表示字符,例如

printf("\x41");//以\x开头的是16进制的转义字符

printf("\101");//由三个数字组成的一般是八进制的。

printf("A");

这三句都是输出A字符,因为A字符的ASCII码是65,而对应16进制的41和八进制的101。

具体的你可以去看看ASCII码表和转义字符方面的知识。

#define _CRT_SECURE_NO_WARNINGS

#include<stdioh>

#include<stdlibh>

#define N 5

struct student {

int num;

char name[1024];

int score[3];

};

typedef struct student stu;

void print(stu p) {

printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");

for (int i = 0; i < N; ++i) {

printf("%d\t", (p + i)->num);

printf("%s\t", (p + i)->name);

for (int j = 0; j < 3; ++j) {

printf("%d\t", (p + i)->score[j]);

}

printf("\n");

}

}

void main() {

stu arr[N];

stu p = arr;

//输入

for (int i = 0; i < N; ++i) {

printf("请输入第%d个学生的信息\n", i + 1);

printf("请输入num\n");

scanf("%d", &(p + i)->num);

printf("请输入姓名\n");

scanf("%s", &(p + i)->name);

for (int j = 0; j < 3; ++j) {

printf("请输入score%d\n", j + 1);

scanf("%d", &(p + i)->score[j]);

}

}

//输出

print(p);

system("pause");

}

运行效果:

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",10/3);输出结果:0333333%。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13491726.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存