我想知道为什么在下面的程序中 sizeof(int)
返回的值与 sizeof(int*)
不同。
这是小程序:
int main(){
std::cout<<sizeof(int)<<endl;
std::cout<<sizeof(int*)<<endl;
return 0;
}
这是输出:
4
8
直到现在我还记得整数指针的大小是 4byte(gcc 编译器)。如何检查指针的正确大小?是否依赖于计算机?
我正在运行 ubuntu 12.04
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
指针的大小不是常量(标准大小)8字节。
最佳答案
int
和int*
的大小完全取决于编译器和硬件。如果您看到 int*
中使用了 8 个字节,则您可能拥有 64 位硬件,每个指针转换为 8 个字节。
希望这对您有所帮助!
关于c++ - 为什么 sizeof(int) 与 sizeof(int*) 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984659/