c++ - 在 C 编译器中,指针的大小始终等于 int 的大小。这是正确的吗?

标签 c++ c linux ubuntu operating-system

<分区>

我使用的是 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/

相关文章:

linux - 我的案例脚本不应该区分大小写并且想要传递字符串

c++ - .h(头文件)和 .cpp 文件有什么区别?

c++ - 使用ffmpeg时内存泄漏

c++ - 使用 Boost::Test 并行代码

c++ - Visual Studio 2013,错误 MSB8020 : The build tools for Visual Studio 2010 cannot be found

使用 ISO C99 进行柯里化(Currying)/绑定(bind)

在C中从整数转换为字符串

c - 标准 C 函数名称

linux - 使用双引号执行 Linux 命令

linux - 未检测到支持 CUDA 的设备(使用 ubuntu 12.04.4 服务器)