2016-04-27 102 views
1

如何在C++中訪問/取消引用數組?C++中的數組指針

例如,如果我有此代碼

int num[] = {0,1,2,3}; 
int *p = # 

我認爲p在指向在NUM陣列的第一個元素?

出於某種原因,我得到一個編譯器錯誤。

我想用指針和增量訪問和更改指向的值,

例如,P在第一個變量的地址在int數組NUM,如果我增加P,我得到的int數組num中的第二個變量的地址。

任何提示將不勝感激。

+1

#的類型是int **。 – kjpus

+1

@kjpus:其實''num'的類型是'int(*)[4]'。 'sizeof'和'&'操作符對數組類型有特殊的含義。 – dreamlax

+1

@dreamlax實際上它們對於所有類型具有相同的含義;它是在其他上下文中具有特殊含義的數組類型 –

回答

8

我以爲p指向num數組中的第一個元素?

int *p = #是錯誤的,因爲&num不是指針爲int,即int*,但實際上是一個指向整數數組,即int (*) [4]

要獲得指向第一個元素的指針,您可以改爲使用int *p = num;int *p = &num[0];