我只是想知道如何我的笔记本电脑是64或32位机器. (这是64).
所以,我想到打印如下:
int main() { printf("%d",sizeof(int)); }
结果是4,这似乎很奇怪(因为它是64位机器)
但是,当我打印这个:
int main() { printf("%d",sizeof(int*)); }
结果是8,这更有意义.
问题是:
由于我使用的是64位机器,所以不应该使用一个原始类型,如int应该使用8个字节
(64位)和那个sizeof int应该是8?为什么不这样呢?
为什么int * size是8?
这里有点困惑,
所以感谢提前.
解决方法
不,sizeof(int)是实现定义的,通常是4个字节.
另一方面,为了解决超过4GB的内存(这个32位系统可以做的),你需要你的指针是8个字节宽. int *只是将地址保存到“内存中的某处”,而且只能使用32位的内存,不能超过4GB的内存.