1.printf()函数,printf在遇到换行和输入时会刷新输出缓冲区,
#include <stdio.h>
int main()
{
int iSalary=2;
int iHour=1;
printf("%f RMB a month,%d hours a day",iSalary,iHour);
return 0;
}
printf("%d RMB a month,%d hours a day",iSalary,iHour);的参数传递过程:计算机把iSalary和iHour放在堆栈区分别按int型进行存储即各占4字节,printf()取得控制权后把堆栈里的值读取出来,根据转换说明符即%f和%u,因为是按%f来读取所以会一次读取8个字节,然后下一个%d读取紧跟其后的4个字节的内容并翻译出来,所以输出结果与实际所期望不符。printf会返回打印出来的字符个数,出错时会返回一个负数。
2.scanf()函数,scanf("%d",&a)转换说明符%d决定读入必须为正负号和整数的组合,若为其他类型eg:字符a会出错并把a再放回缓冲区,以空格、换行、制表符结束;只有当您键入回车时这些数据才会发给程序,输入'\n'并不行;scanf("%s",&a)会读取除空白字符的所有字符以空白字符结束,当读入数据放入指定数组时scanf会在末尾加'\0'结尾(即使超过数组上界也会);scanf会返回成功读入的项目个数,失败返回0,检测到文件结尾时会返回EOF。
3.','运算符有两个作用;(a):顺序执行即a=1,b=a+1( b):x=(2,3))‘,’表达式是整个右边表达式的值即x=3