#includestruct s
x; char c[10];
};};int main()
x; 記憶體對齊大小為8個位元組
union
x;char c[10];
};8個位元組x, char佔10個位元組又按4個位元組對齊, 則為12, 若將int改為long or double or longlong則按8位元組對齊結果為16
2、大端、小端模式
這邊以小端
s.x.a
= 64; 取值為0x40 由於四個位元組補齊 -》 0x00000040
s.x.b = (5<<24) | (4<<16) | (3<<8) | (2); 取值為0x05040302
假設記憶體 儲存方式 按照小端的存放 高的記憶體資料放在低的記憶體位址上
0x4000 0x4001 0x4002 0x4003
0x40 0x00 0x00 0x00
0x4004 0x4005 0x4006 0x4007
0x02 0x03 0x04 0x05
0x4008 0x4009 0x4010 0x4011
0x00 0x00 0x00 0x00
3、strlen, sizeof
strlen 遇到\0 結束, 那麼遇到00 也結束 。
sizeof 實際記憶體大小。
4、%x 十六進製制輸出
最終小端的答案:
0 : 0x40
1 : 0x0
2 : 0x0
3 : 0x0
4 : 0x2
5 : 0x3
6 : 0x4
7 : 0x5
8 : 0x0
9 : 0x0
10 : 0x0
11 : 0x0
1
#includeint main()
關於記憶體對齊的面試題
鄭重宣告 本文是筆者根據個人理解所寫,錯誤難免,歡迎拍磚!請說出如下2種方式,哪種更好,為什麼?方式一 void foo int a,float b,char ch,double d,float f 方式二 structa void foo a pa 咋一看,不知道這題想要考什麼,無從下手。其實該題...
關於記憶體對齊的面試題
鄭重宣告 本文是筆者根據個人理解所寫,錯誤難免,歡迎拍磚!請說出如下2種方式,哪種更好,為什麼?方式一 void foo int a,float b,char ch,double d,float f 方式二 structa void foo a pa 咋一看,不知道這題想要考什麼,無從下手。其實該題...
iOS經典面試題總結 記憶體管理
1.什麼是arc?arc是automatic reference counting自動引用計數,在程式編譯時自動加入retain release。在物件被建立時retain count 1,在物件被release時count 1,當count 0時,銷毀物件。程式中加入autoreleasepool...