【发布时间】:2012-06-14 15:02:49
【问题描述】:
我想知道为什么在以下程序中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字节。
【问题讨论】:
-
64 位操作系统?
-
@ahenderson- 你确定所有的指针都保证大小相同吗?
-
仅供参考,没有“标准尺寸”。
-
@ahenderson:指向不同类型的指针不必相同大小。
-
@Oli Charlesworth :我可以在代码中看到一个示例吗?我现在不太确定这个问题。