一、sizeof()函数检测C环境中数据类型大小
代码:
#include <stdio.h>
int main(void)
{
printf("Type int has a size of %u bytes.\n", sizeof(int));
printf("Type char has a size of %u bytes.\n", sizeof(char));
printf("Type long has a size of %u bytes.\n", sizeof(long));
printf("Type double has a size of %u bytes.\n", sizeof(double));
return 0;
}
运行结果:
二、数据类型的选取
开发程序时,应特别注意所需变量及其类型的选择
在使用变量的函数的开始处声明该变量,选择有意义的变量名,初始化变量时使用的常量应同变量类型匹配
当为某个数值类型的变量进行初始化时,如果常量使用了其他类型的值,C会自动对该值进行类型转换以便和变量类型匹配
很多组织或程序员自己都有系统化的变量命名规则,学习、借鉴这些规则,有利于培养自己严谨、自律的编程习惯
三、函数的参数
无论包含多少个字符和标点符号,一个字符串只是一个参数
C用逗号隔开函数调用中的多个参数
一些函数(如printf()、scanf()等)比较特殊,其参数数目可以不受限制
使用%d显示float值并不会把该float值转换为近似的int值,而是会显示垃圾值;类似地,使用%f显示int值也不会把该int值转换为浮点值’参数的数目不足和类型不匹配造成的后果因平台而异
四、刷新输出
printf()语句将输出传递给一个中介存储区域(缓冲区,buffer),缓冲区中的内容在不断地被传送给屏幕
标准C规定在以下情况下将缓冲区内容传送给屏幕:
1)缓冲区满的时候
2)遇到换行符的时候
3)需要输入的时候
将缓冲区内容传送给屏幕或文件的过程被称为刷新缓冲区
早期的C语言版本中,scanf()语句并不强迫刷新缓冲区,为防止此问题,可以用换行符\n刷新缓冲区:
printf("Please enter a float number: \n");
scanf("%f", &num);
这样不管输入语句是否触发缓冲区刷新,代码都会正常工作
五、总结
1)C包含大量数值类型(两大类:整数类型和浮点数类型),为程序员提供方便
2)浮点数与整数有很大不同
3)C允许书写混合数据类型的表达式,会自动进行类型转换,实际的计算只采用一种类型
4)整数类型两个重要特征:类型大小;有符号或无符号
5)3中浮点类型:float、double、long double
6)整数可以表达为十进制、八进制或十六进制形式
7)前缀0表示八进制数;前缀0x或0X表示十六进制数
8)后缀l或L表示long类型值;后缀ll或LL表示long long类型值
9)字符常量表示为放在单引号中的一个字符
10)C的转义序列用于表示一个非打印字符
11)计算机中,浮点数可以书写为一般形式、指数形式