c 陣列和指標

2021-05-23 13:16:17 字數 899 閱讀 9673

對於c++中陣列和指標的一些理解,記錄如下:

通常編譯器總是將陣列名處理為指標。比如在函式呼叫時,如果形參為陣列 如 int a 則在實際呼叫該函式時,對應實參可以為陣列,

也可以是指標,比如 int *p 。這是因為a是乙個元素為int的陣列,因此陣列名a相當於指向陣列第乙個元素(也就是int)的指標。但

是多維陣列的情況較為複雜。例如二維陣列 int b ,b應當看作乙個元素為 int 的陣列,也就是說陣列b的元素是一維陣列(即通常

所說的「陣列的陣列」)。因此陣列名b相當於指向陣列第乙個元素(此時第乙個元素的型別是 int )的指標,而指向 int 這個一維

陣列的指標應該表示為 int(*) (注意「」優先順序高於「*」,括號不可省略) 。因此當使用二維陣列作形參時,實參既可以是二維數

組,也可以是乙個 int(*)   的指標(而不是 int ** )。而二維陣列的儲存方式可能如下圖:

b[0]是陣列b的第乙個元素,型別為 int ,實際上它也是乙個陣列名(即儲存的是陣列的首位址),因此b[0]相當於乙個 int * 的指標,

而b[0][0]就是 int 型別的陣列元素了。

三維陣列 int c 的情況更為複雜,但有規律可循:

陣列名          陣列型別         陣列元素型別          陣列名對應的指標型別

c                 int          int                   int (*)

c[0]             int            int                      int (*)

c[0][0]        int               int                         int *

對於多維陣列,情況應當是類似的。

c 陣列指標和指標陣列

先記住 指標陣列 本質是陣列,資料可以用來存放int float等物件,當然也可以存放指標。例子 陣列指標,用樓上的話就是指向陣列的指標,操作指標就可以運算元組如下 int a 3 int p a printf 陣列指標 d n p 1 列印的結果為2,原因是p初始化指向了陣列a的首位址,即a 0 ...

C 筆記 C 陣列指標和指標陣列

char p 10 為陣列指標,實際上相當於二維陣列,也就是指向乙個一維陣列的指標 p可以單獨看做指向陣列的指標 比如這樣 int b 2 int cc 2 2 1,2 3,4b cc b cout 這樣的賦值是可以的,b指向的陣列的大小一定要和cc的第一維陣列大小一致,這裡輸出,4,因為b 這個時...

C語言 指標陣列和指標陣列

本質是陣列 只不過呢,它裡面存放的資料型別不是int,也不是char這類基本型別,而是乙個指標型別,說白了就是位址,所以叫指標陣列!記住 是存放指標的陣列!int p n 本質是指標 只不過是指向乙個陣列的指標,也稱之為 行指標 int p n p是乙個指標,指向乙個int型別的一位陣列,這個一位陣...