1、数据类型:(基本数据类型)(以32位计算机系统为例)
类型 | 符号 | 关键字 | 所占位数 |
---|---|---|---|
整型 | 有 | int | 32 |
有 | short | 16 | |
有 | long | 32 | |
无 | unsigned int | 32 | |
无 | unsigned short | 16 | |
无 | unsigned long | 32 | |
实型 | 有 | float | 32 |
有 | double | 64 | |
字符型 | 有 | char | 8 |
无 | unsigned char | 8 | |
布尔类型 | 0或1 | bool | 1 |
注:
1、标准C中没有规定char类型是否是有符号还是无符号
2、布尔类型即为0或1
3、float类型不是一个精确的值,无法让其与精确的数值作比较,因为0.9999999或1.0000001在计算机语言中都可以认为是1
float用法错误示范:
#include <stdio.h>
int func(float f)
{
if(f<0)
return -1;
else if(f==0)
return 0;
else
return 1;
}
错误原因:因为float类型的值无法精确到某一个数值,如0.9999999或1.0000001在计算机语言中都可以认为是1
float用法正确示范:
#incldue <stdio.h>
int func(float f)
{
if(f<0)
return -1;
else if(fabs(f-0)<=1e-6)//f的绝对值减去0后小于或等于0.000001即约等于0
return 0;
else
return 1;
}
4、不同形式的0值: 0、'0'、"0"、'\0'
5、数据类型与后续代码中使用的输入输出要相匹配(防止自相矛盾)