2011-03-08 141 views
0
int intarray[256] = {0, 11, 12, 13, 14, 15, 16, 17, 18, 19}; 
int* ptrA; 
ptrA = &intarray[0]; 

如果pta是局部變量的內容,它是intarray [0]的地址,那麼pta +5是什麼意思?C內存地址問題

任何人都可以解釋嗎?謝謝

回答

4

它指向第六個元素。指針添加通過目標類型的大小進行隱式乘法。

+0

sizeof int不等於1 ...:'pta + 5!=&pta [5]' – Phong 2011-03-08 07:33:10

+0

否@Phong。正如西蒙所說 - 添加到指針需要考慮sizeof()。 – Dre 2011-03-08 07:34:54

+1

@Phong,ptrA是一個整型指針(int *)因此當你說'ptrA + 5'時,它實際上意味着'ptrA + 5 * sizeof(int)' – 2011-03-08 07:36:22

0
int intarray[] = {0,11,12,13,14,15,...,19}; 
int* ptrA = intarray; 

int v = *(ptrA + 5); // v == 15