short [int]
内存大小 2byte=16bit
数据范围 -32768~32767(即-2^15~2^15-1)
unsigned short [int]
内存大小 2byte=16bit
数据范围 0~65535(即0~2^16-1)
int
内存大小 4byte=32bit
数据范围 -2147483648~2147483647(即-2^31~2^31-1)
备注 C语言规定:无论什么平台都要保证long型占用字节数不小于int型, int型不小于short型。
int型在不同位数操作系统中所占用的字节数不同,如果想编写可移植性好的程序,早年流行16位和32位操作系统时最好用long修饰int型,现在流行32位和64位操作系统,用int就挺多了。当然这些都看你怎么去理解它了,毕竟它 们在不同操作系统所占字节数不固定,所以各自都有其适用之处,不可定论其好坏。
unsigned int
内存大小 4byte=32bit
数据范围 0~4294967295(即0~2^32-1)
long [int]
内存大小 4byte=32bit
数据范围 -2147483648~2147483647(即-2^31~2^31-1)
备注 short,int,long都默认为有符号型,其中 long 和 int 都占4个字节的空间大小,他们有什么区别呢?
16位操作系统:long:4字节,int:2字节
32位操作系统:long:4字节,int:4字节64位操作系统:long:8字节,int:4字节
unsigned long [int]
内存大小 4byte=32bit
数据范围 0~4294967295(即0~2^32-1)
long long [int]内存大小 8byte=64bit
数据范围 -9223372036854775808~9223372036854775807(即-2^64~2^64-1)
unsigned long long [int]内存大小 8byte=64bit
数据范围 0~18446744073709551615(即0~2^64-1)
unsigned char(byte)内存大小 1byte=8bit
数据范围 0~255(即0~2^8-1)
singned char
内存大小 1byte=8bit
数据范围 -128~127(即-2^7~2^7-1)
bool内存大小 1byte=8bit
数据范围 false or true(即0 or 1)
备注 只能取两个值false或者true;所以最小值就是:0, 最大值:1。
float内存大小 4byte=32bit
数据范围 (1.17549e-038)~(3.40282e+038)
备注 浮点数在内存中都是按科学计数法来存储的,浮点数的精度是由尾数的位数决定的,大家记住即可不必深究。
double内存大小 8byte=64bit
数据范围 (2.22507e-308)~(1.79769e+308)
备注 如何区分和使用这两个浮点类型呢,首先float和double的精度不同, float保留到小数点后面7位,而double保留到小数点后面16位,float能保证6 位有效数字,而double能保证15位有效数字,如果在不追求精度的的情况下 当然用 float比较好,节省内存,如果需要很高的精度的情况下,最好还是用 double,平时我们定义浮点型变量一般都用double,毕竟精度高,一般精度的损失是不能忽略的。
指针
内存大小 4byte=32bit
备注 64位系统==8byte
1.// 16位编译器 char :1个字节 unsigned char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 // 32位编译器 char :1个字节 unsigned char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节 // 64位编译器 char :1个字节 unsigned char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 8个字节 long long: 8个字节 unsigned long: 8个字节