整理总结自己所学知识,如有错误,欢迎指正。
C语言提供了丰富的数据类型来描述生活中的各种数据。
使用整型类型来描述整数,使用字符型来描述字符,使用浮点型来描述小数。
C语言提供的数据类型如下
内置类型:C语言自带
自定义类型:自己设计的
char
[signed] char
unsigned char
[]表示里面的内容在写代码时可以省略不写,下面出现的[]同理。
短整型
short [int]
[signed] short [int]
unsigned short [int]
整型
int
[signed] int
unsigned int
长整型
long [int]
[signed] long [int]
unsigned long [int]
更长的整型
long long [int]
[signed] long long [int]
unsigned long long [int]
float----单精度浮点数
double----双精度浮点数
long double
_Bool
C语言原来并没有为布尔专门设置一个类型,而是使用整数0表示假,非零表示真。
后来引入布尔类型,是专门表示真假的。
使用布尔类型包含的头文件:<stdbool.h>
布尔类型变量的取值范围:true或者false
不同的数据类型就能够创建出不同长度的变量,变量长度不同,存储的数据范围就有所差异。
sizeof是一个关键字,也是操作符,专门是来计算sizeof的操作符数的类型长度的,单位是字节。
sizeof操作符的操作数可以是类型,也可以是变量或者表达式。
sizeof(类型)
sizeof 表达式
sizeof的操作数如果不是类型,是表达式的时候,可以省略后面的括号。
sizeof后面的表达式是不真实参与运算的,根据表达式的类型来得出大小。
sizeof的计算结果是size_t类型的。
a是int类型,占2个字节
5是int类型,占2个字节
2个字节+2个字节=4个字节
s是short类型,占2个字节,存储不了4个字节,所以发生截断。
根据这个例子,我们就能更好的理解,sizeof是根据表达式类型来得出大小。
从上往下,单位逐渐变大。
bit----比特位
Byte----字节
KB
MB
GB
TB
PB
换算关系如下:
1Byte=8bit
1KB=1024Byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
C语言使用signed和unsigned关键字修饰字符型和整型类型。
signed关键字,表示一个类型带有正负号,包含负值。
unsigned关键字,表示该类型不带有正负号,只能表示零和正整数。
对于int类型,默认带有正负号,也就是说int等同于signed int。?
int类型也可以不带正负号,只表示非负整数,这时就必须使用关键字unsigned声明变量。
整数变量声明为unsigned的好处是,同样的长度内存能够表示的最大值,增大了一倍。
字符类型char也可以设置signed和unsigned。
C语言规定,char类型默认是否带正负号,由当前系统决定。
char并不等同于signed char,有可能是signed char,也有可能是unsigned char。
类型是用来创建变量的
变量:经常变化的值
常量: 不变的值
初始化:变量创建的时候给一个初始值
全局变量:在大括号外部定义的变量,使用范围更广,不初始化的话,默认是0。
局部变量:在大括号内部定义的变量,使用范围局限,不初始化的话。默认是随机值。
正常情况下,变量创建的时候要初始化。
当全局变量和局部变量同名时,局部变量优先使用。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??