閱讀器,C陣列,我的記憶會發生什麼
任何人都可以向我解釋當我運行這段錯誤代碼時,在我的計算機中會發生什麼。 用gnu gcc編譯器編譯。在代碼塊中。
這是錯誤的代碼:
char data[5];
data[0] = '1';
data[1] = '10';
data[2] = '30';
data[3] = '50';
if(sizeof(data) == 5)
{
adjust(data);
}
的sizeof(數據)爲5,因爲我聲明char數據[5]。
如果我嘗試讀取數據[1],我注意到它會返回最後一個字符。 '0'或'48'。
所以我想知道,數據[1]中的'1'會發生什麼,我的記憶會發生什麼?
是字符文字與更多的一個字符被編譯器接受(特殊情況像十六進制'0x1'我知道是)但一般? –
顯然char文字被截斷爲單個字符。 – joey