为什么指针在64位和32位系统中保持相同的大小?

prg*_*lop 1 pointers 32bit-64bit

我最近在我的计算机上安装了64位操作系统,我认为这样sizeof(char*)会给我8而不是4.我不应该在指针中获得64位地址吗?

Dav*_*nan 7

这是因为您使用的编译器正在发出32位代码.如果使用64位编译器,则指针将为8字节宽.

请注意,大多数64位系统都能够在仿真层下运行32位代码.在Windows上,仿真层称为WOW64.这显然是这里发生的事情.