C語言基礎

int 為4位元組,指標為8位元組。指向 int 的指標 p 的值(位址)為 0x1000 時,p + 3 的值為下列何者?

  1. A0x100C
  2. B0x1012
  3. C0x1018
查看答案與解析

正確答案:A. 0x100C

指標加上整數時,會以所指向型別的大小為單位前進。int 為4位元組,因此 p + 3 指向 3 × 4 = 12 位元組之後,也就是 0x1000 + 0xC = 0x100C。p + 3 是陣列元素 p[3] 的位址,*(p + 3) 與 p[3] 意義相同。若是指向 char 的指標則每次前進1位元組,指向 double(8位元組)的指標則每次前進8位元組。

  • A. 正確。每次前進4位元組、共3次,因此加上 12 = 0xC。
  • B. 這是沒有把12位元組換算成十六進位、直接當作「12」相加的值。十進位的12在十六進位是 0xC。
  • C. 這是認為以指標本身的大小(8位元組)為單位前進時的值(3 × 8 = 24 = 0x18)。
練習這個領域 前往領域頁面

C語言基礎的其他題目

  1. int 為4位元組,指標為8位元組。執行上方程式時的輸出,下列何者正確?
  2. int 為4位元組。執行上方程式碼時的輸出,下列何者正確?
  3. 關於放入字串的 char 陣列,執行上方程式碼時的輸出,下列何者正確?
  4. 在上方的宣告之後,寫入甲「p = t;」、乙「*p = 'x';」、丙「q = t;」、丁「*q = 'x';」其中之一。會發生編譯錯誤的組合為下列何者?
  5. 執行上方使用函式指標陣列的程式時的輸出,下列何者正確?