gets和scanf函数的区别(空格,输入类型,返回值)?C语言编译过程中,volatile关键字和extern关键字分别在哪个阶段起作用?printf返回值?
1)gets函数可以接受空格,scanf遇到空格就会结束
2)gets函数仅用于读入字符串;scanf为格式化输出函数,可以读入任意C语言基础类型的变量值,而不是仅限于字符串(char)类型
3)gets的返回值为char型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL;
scanf返回值为int型,返回实际成功赋值的变量个数,当遇到文件结尾标识时返回EOF;
volatile预处理,因为代码优化是在编译,extern 在链接。
Printf()函数的返回值:
假设1
int a = 241;
Printf(“%d\n”,a);
printf的返回值是4,也就是说返回值是a数字的字符个数+\n
假设2
printf("%d\n",printf("%d",a)); //2413
printf("%d\n",printf("%d\n",a)); //2414 多了\n
注意空格也算