考慮下面的代碼:理解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