1
我必須爲學校做一個小型作業。我在C.寫這個的問題是:從uint_16t轉換後uint8_t的值
鑑於
uint16_t A[] = { 0xabce, 0x43fe, 0xcf54, 0xffff };
uint8_t *p = (uint8_t *)&A[0];
什麼是p[3]
價值?
我做了一些研究,發現這些數字將會使用little-endian放回到我的電腦中。所以
p[] = {171, 67, 207, 255}
然而,當我打印p[]
我得到
p[0] = 206
p[1] = 171
p[2] = 254
p[3] = 67
我感到很困惑這個,誰能告訴我爲什麼發生這種情況?
你知道'p [0]'和'p [1]'都會指向A [0]的單獨字節嗎? –
投射指針不會轉換。 p [0]是A [0]的第一個字節,p [1]是A [0]的第二個字節,p [2]是A [1]的第一個字節]'等 –
'uint8_t'不是字符類型,因此這是未定義的行爲。 – EOF