1.混合运算
强制类型转换实际上是运算符的一种,例如将整型变量i转换为浮点型的表达式:(float) i
。
这种运算的作用是当我们在进行除法运算时,如下所示:
int i = 5;
float j = i / 2; //j的值是5
float k = (float)i / 2; //k的值是2.5,原因是表达式``(float)i``把整型5转换为5.0,做浮点数除法
2.scanf函数的原理
- 在标准输入缓冲区中,用户输入的数字、字符等,都以一个个字符形式存在缓冲区中,例如
10
是以1、0两个字符的形式,scanf函数就是用于读取这两个字符并转化为数字10。
行缓冲:在这种情况下。当在输入和输出中遇到换行符时,将执行真正的I/O操作。这时,我们输入的字符先存放到缓冲区中,等按下回车键换行时才进行实际的I/O操作,典型代表是标准输入缓冲区(stdin)和标准输出缓冲区(stdout)。 - scanf函数在读取整型数、浮点数、字符串时会忽略'\n'(回车符)、空格符等字符,忽略是指scanf函数执行时会首先删除这些字符,然后再阻塞。
- scanf函数在执行
scanf("%c",&c)
语句时,不会忽略任何字符。
3.ASCII码表
实际上转义字符\0
在ASCII码表中对应的是0,也就是说在计算机中,它用二进制表示数字0的方式来存储。而\n
在ASCII码表中对应的是数字10,所以这些转义字符也是字符常量,不会被scanf执行%c时忽略。