c程序结构:
一个c语句由若干个源程序文件组成;一个源文件由若干个函数和预处理命令以及数据声明组成,一个函数由数据声明部分和执行语句组成。
c语句组成:控制语句(if)、输出函数(printf)、表达式语句(表达式+分号)、空语句(;)、复合语句({ })。
字符数据的输入输出:
1、putchar函数:是向终端输出一个字符。putchar(‘c’),输出字符变量c的值,c也可以是整型变量(输出结果为ASCII码对应的字符)。
2、getchar函数:是从终端输入一个字符。通过返回值来直接输入数据。getchar()的函数值就是从输入设备得到的字符。
缓冲区,由于cpu与外设速度不匹配,对数据建立的临时的内存空间,等待数据收集完毕cpu再取出数据。遵循FIFO原则,先入先出,(和桶一样)
格式输入与输出
1、printf函数:可以输出多个数据,且可以是任意类型。
printf格式字符:
d,i:带符号的十进制形式输出整数
o:八进制无符号输出整数(不输出前导符o)
xX:十六进制…………,xX区分输出的大小写字母
u:无符号十进制输出整数
c:字符型式只输出一个字符
e E:指数形式输出,将浮点型数据转换为科学计数法。
l:长整型整数,可以加在d o x u f前
p:打印指针地址
%%:打印%
“%m.nf”:m为输出占用的宽数,输出长度小于m,在前面补空格。n表示小数点后几位,四舍五入。输入函数浮点数不能用,输出都行
2、scanf函数
scanf(“%d%d”,&i,&q),
返回值表示输入成功的个数(2)。
输入多个数字时,可按空格/tab/回车
%0md 补零 或补空格 (若m为负 则在数据右端补空格 ,不允许右边补0。若m为正,则在前补0。)
若没有取地址&,则会认为输入为随机数,致程序崩溃。
scanf的格式控制是变量地址而不是变量名。也不能加换行符\n。
scanf在存储空间中占用4字节,也无法通过地址值推断变量的字节数 printf可以
scanf中浮点型输入不能使用精度和宽度控制“%f”,double类型对应格式控制“%lf”
scanf会在输入完成按回车键或遇非法输入时退出(无权限访问随机地址)。