int *p, k = 10;
double *q, f = 5.6;
p = &k; q = &f;
p = (int*)q; // 強制轉換
// *p 值為何?
double f = 5.6 佔 8 位元組,IEEE 754 二進位表示:0x4016666666666666(小端序儲存)。q 指向這 8 位元組起始位址。p = (int*)q 後,p 同樣指向起始位址,但型別為 int*(4 位元組)。*p 讀取前 4 位元組:0x66666666 → 十進位 1717986918(視為有號整數為負數)。*p 確實讀取到一個 int 大小的位元模式,型別上是整數。memcpy 或 union。double* 強轉 int* 後解引用,讀取到 double 記憶體前半部位元模式,型別為整數但數值為垃圾值。選項 A「一個整數」正確描述型別屬性。