初级c++编程

[复制链接]
查看11 | 回复4 | 2013-7-10 11:47:09 | 显示全部楼层 |阅读模式
INT_MAX 只是一个宏定义, 还是int类型的. 使用sizeof计算的结果就是int的大小.每个类型占用的大小不是和机器相关, 而是和编译器相关的. C/C++中规定short 就是2字节, int 可以是16或32位(不同编译器有所不同, 但大多是32位), long 是32位, 不管你是16位还是32位还是64位的机器, 给定一个数值默认是int类型的, 除非有特别说明(如加后坠u,l等)所以你的#defineINT_MAX 32767其实 还是int类型...
回复

使用道具 举报

千问 | 2013-7-10 11:47:09 | 显示全部楼层
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int:4个字节
unsigned int : 4个字节
float:4个字节
...
回复

使用道具 举报

千问 | 2013-7-10 11:47:09 | 显示全部楼层
编译器对此处定义的宏进行存储的时候,如果能被int或更小空间存储的时候转换成int的大小。否则转换成更大类型。这里有个默认的类型转换,所以输出是4字节!希望对你有用!...
回复

使用道具 举报

千问 | 2013-7-10 11:47:09 | 显示全部楼层
MAX_INT的和sizeof(int)的结果无关,就好像一辆车超载了,它还是那么大...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行