考虑下面的代码:理解C++结构尺寸
struct CExample {
int a;
}
int main(int argc, char* argv[]) {
CExample ce1;
CExample ce2;
cout << "Size:" << sizeof(ce1) << " Address: " << &ce1 << endl;
cout << "Size:" << sizeof(ce2) << " Address: " << &ce2 << endl;
CExample ceArr[2];
cout << "Size:" << sizeof(ceArr[0])<< " Address: "<< &ceArr[0] <<endl;
cout << "Size:" << sizeof(ceArr[1])<< " Address: "<< &ceArr[1] <<endl;
return 0;
}
输出例如:
CE1:大小= 4,地址:0039FAA0
CE2:大小= 4,地址:0039FA94
ceArr [0] :大小= 4,地址:0039FA84
ceArr [1]:大小= 4,地址:0039FA88
随着代码存在第一两个对象的地址(CE1和CE2),但是之间的12字节的有只是一个4字节的差异赌注查看数组中的对象。
我认为数据调整与这个问题有关,但我仍然难倒了。任何想法这里究竟发生了什么?
上面的输出是什么?在代码中发表意见? – 2011-01-09 16:51:40