C語言基礎
int 為4位元組,指標為8位元組。指向 int 的指標 p 的值(位址)為 0x1000 時,p + 3 的值為下列何者?
- A0x100C
- B0x1012
- 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)。