
一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。
函数可以有返回值,也可以没有返回值。
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 );
参考资料:
回调函数 就是上层调用 设置下去
底层通过函数指针调用上层函数
多文件中才有用 单文件可以模拟
比如
#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-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",10/3);输出结果:0333333%。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)