基本数据类型
- 整数就是没有小数部分的数,整数以二进制数字存储。
- 浮点数:浮点数表示法将一个数分为小数部分和指数部分并分开存储。
- 整数和浮点数的区别:
- 整数没有小数部分,浮点数可以有小数部分。
- 浮点数可以表示比整数范围大得多的数。
- 对于一些算数运算,使用浮点数会损失更多精度。
- 因为在任何区间内都存在无穷多个实数,所以计算机浮点数不能表示区域内所有的值。
- 浮点运算通常比整数运算慢。
-
int
类型- int类型是有符号的整数,可以是正的,负的,或者是0,其取值范围依赖于计算机系统。
- 声明int变量
int erns; int hogs,cows,goats;
- 初始化变量
int hogs = 21; int cows = 32,goats = 14; int dogs,cats = 94;
- 十进制,八进制和十六进制
- 十进制:%d
- 八进制:%0
- 十六进制:%x
类型 | 打印符号 |
---|---|
int | %d |
long | %ld |
unsigned int | %u |
unsigned long | %lu |
float | %f |
short | %hd |
-
整数溢出
int main(void){
int i = 2147483647;
unsigned int j = 4294967295;
printf("%d,%d,%d;",i,i+1,i+2);
printf("%d,%d,%d;",j,j+1,j+2)
return 0;}
结果:
2147483647,-2147483648,-2147483647;
4294967295,0,1;- 无符号整型(
unsigned int
):像一个汽车里程指示表,当达到最大值时,它将溢出到起始点也就是0
; - 整数(
int
):达到最大值时,它也 将溢出到起始点也就是-2147483648
=2的31次方
- 无符号整型(
字符:char类型
- char类型用于存储字母和标点符号之类的字符。
- char类型实际存储的是整数而不是字符。
- char初始化
char broiled;//声明一个char变量。; broiled = 'T';//正确。; broiled = T;//不正确,把T看作一个变量。; broiled = "T";//不正确,把"T"看作一个字符串。 因为字符实际上是以数值的形式存储,所以也可以使用数值编码来赋值。 char grade = 65;//对于ASCII,这是正确的,但是这是一种不好的编程风格。;
- 字符常量:
- 常量的本质:不占据任何存储空间;属于指令的一部分,编译后不再更改。
- 字符常量在内存中占4个字节,存放的是字符的ASCII码(整型数据)。C语言规定所有字符常量都作为整型量来处理。