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

网友投稿 476 2022-11-19

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:CY7C68013和FPGA的数据通信
下一篇:Vue简易注册页面+发送验证码功能的实现示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~