目录
1.数据类型
C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。
1)字符型
\\char为有符号还是无符号的char,取决于编译器实现的。
2)整型
int——整型类型
short [int]——短整型
long [int]——长整型
long long [int]——更长整型
3)浮点型
4)布尔类型
写法:
\\C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。
注:
1.使用条件:布尔类型的使⽤得包含头⽂件<stdbool.h>
2.变量:true 或者 false
代码演示:
2.各种数据类型的长度
1)sizeof操作符
- sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof的操作符数的类型⻓度的,单位是字 节。
- 操作数:1.类型 2.变量 3.表达式。
- sizeof 的计算结果是 size_t 类型的。
- sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
- sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
补充:计算机中常见的单位
2)数据类型长度
内置类型:字符型
- char 1
整型
- short 2
- int 4
- long 4
- long long 8
浮点型
- float 4
- double 8
- long double 8
布尔类型
- -Bool 1
\\C语言规定 sizeof (long) >= sizeof (int)
3)sizeof中表达式不计算
\\相当于将4个字节截断变成2个字节
4)sizeof 的计算结果是 size_t 类型
sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给 系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是 unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long , 对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返 回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是 unsigned long long 。
\\size_t 本质上是无符号整数,占位符是%zd
3.signed 和 unsigned
C 语⾔使⽤ signed 和 unsigned 关键字修饰 字符型和整型 类型的。
- 有符号的整数:int , signed int
- 无符号的整数(0和正整数):unsigned int
整数变量声明为 unsigned 好处:
同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍。
⽐如,16位的 signed short int 的取值范围是:-32768~32767,最⼤是32767;⽽ unsigned short int 的取值范围是:0~65535,最⼤值增⼤到了65,535。
char类型比较特殊
C 语⾔规定 char 类型默认是否带有正负号,取决于编译器实现的。
4.数据类型的取值范围
- limits.h ⽂件中说明了整型类型的取值范围。
- float.h 这个头⽂件中说明浮点型类型的取值范围。