我有以下代码片段,
char *chptr;
int *numptr;
printf("\nSize of char is %d\n",sizeof(chptr));
printf("\nSize of int is %d\n",sizeof(numptr));
为此,我得到了以下输出,
Size of char is 4
Size of int is 4
显然,指针最多可以存储2 32 - 1的地址。
我正在使用带有和的Windows 7 32-bit
操作系统。Code::Blocks 10.05
MingW
但是我的系统有一个Pentium Dual-Core
带有36 Bit Address Bus
. 目前我有 4 GB RAM。但是假设如果我增加 RAM 的大小来表示8 GB
, C 指针如何处理如此扩展的地址空间?C 指针的大小只有 32 位,但地址空间远远超过 2 32。
有什么建议么?先感谢您。
PS:我已经检查了 此处给出的解决指针中地址存储的答案,但我相信它们并没有涵盖我的问题。