①:1字节(byte) = 8位(bit) ②:在16位的系统中(比如8086微机) 1字(word)= 2字节(byte)= 16(bit) 在32位的系统中(比如win32) 1字(word)= 4字节(byte)= 32(bit) 在64位的系统中(比如win64) 1字(word)= 8字节(byte)= 64(bit)
C语言中的基本数据类型有: char、short、int、long、float、double。
char:1个字节、8位;
short:2个字节、16位;
int:8/16位通常是2字节、16位;GCC编译器下32/64位的CPU为4字节、32位;
char*:指针类型,所有指针类型均与CPU本身的数据位宽一致,如:32位机器为4字节、32bit,而64位机器为8字节、64bit。
整型这个整,就体现在它和CPU本身的数据位宽是一样的,例如32位的CPU,int 就是32位。
不同变量在不同位数的处理器下所占的字节数
变量类型 | 8/16位处理器 | 32位处理器 | 64位处理器 |
---|---|---|---|
char | 1 | 1 | 1 |
short int | - | 2 | 2 |
int | 2 | 4 | 4 |
long int | 4 | 4 | 8 |
long long int | - | 8 | 8 |
char* | 1/2 | 4 | 8 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
局部变量:作用域及生命期为当前函数;
静态局部变量:作用域为当前函数,生命期为整个源程序。
全局变量:作用域及生命期为整个源程序。