C/C++ - 基本数据类型(默认:32位操作系统)

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


// 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个字节

 

你可能感兴趣的:(#,ACM,#,C/C++)