我想知道为什么在以下程序中,
指针的大小是否不是固定的(标准大小)8个字节。
sizeof(int)
返回的值与sizeof(int*)
不同。
这是一个小程序:int main(){
std::cout<<sizeof(int)<<endl;
std::cout<<sizeof(int*)<<endl;
return 0;
}
这是输出结果:
4
8
直到现在我还记得一个整数指针的大小是4个字节(GCC编译器)。我该如何检查指针的正确大小?这与计算机有关吗?
我正在运行Ubuntu 12.04。
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
指针的大小是否不是固定的(标准大小)8个字节。
char*
比int*
更大,并且在某些机器(Intel 8086)上函数指针和数据指针的大小也不同。 - James Kanze