<分区>
我使用的是 64 位 ubuntu 机器 (x86_64)。
我的前辈告诉我,在 C 程序中,任何指针的大小始终等于 int 的大小。是否正确?
但是当我执行 sizeof(int)
时,我得到了 4 个字节,对于 sizeof(int*)
,我得到了 8 个字节。
1. 为什么我的 x86_64 中的 sizeof(int)
得到 4 个字节?
<分区>
我使用的是 64 位 ubuntu 机器 (x86_64)。
我的前辈告诉我,在 C 程序中,任何指针的大小始终等于 int 的大小。是否正确?
但是当我执行 sizeof(int)
时,我得到了 4 个字节,对于 sizeof(int*)
,我得到了 8 个字节。
1. 为什么我的 x86_64 中的 sizeof(int)
得到 4 个字节?
最佳答案
My senior has told that in C program size of any pointer is always equal to size of int . Is it correct?
不,那是不正确的。
有multiple different memory models possible , 通常同时在同一个系统上。通常系统支持同时运行 ILP32 和 LP64 进程。 int
在 ILP32 和 LP64 中都是 4 个字节(32 位),而指针在 LP64 中是 8 个字节(64 位)。
关于c++ - 在 C 编译器中,指针的大小始终等于 int 的大小。这是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36935646/