指標和陣列,難倒了多少程式猿?

2021-09-26 07:47:47 字數 876 閱讀 3913

指標和陣列是面試的時候遇到面試官問的頻數最多的問題,但從事實上來說,他倆之間其實沒多大關係,只不過陣列有時候會隱式轉成指標。

先不要頭疼,下面這道題如果清楚了,那麼指標和陣列基本就難不到你了!

先來看一下這個經典的指標陣列筆試題目,如下**塊:

int main()

; char **cp = ;

char ***cpp = cp;

printf("%s\n", **++cpp);

printf("%s\n", *--*++cpp + 3);

printf("%s\n", *cpp[-2] + 3);

printf("%s\n", cpp[-1][-1] + 1);

return 0;

}

char *c[ ] = ;這是乙個指標陣列,每個元素指向相應的字串的首字元的位址 。

char **cp = ;這是乙個二級指標陣列,每個元素指向「指標」陣列c 的對應空間的位址。

char ***cpp = cp;這是乙個**指標,指向「二級指標」陣列cp的首位址 。

畫圖表示的話就是這樣子:

再來看四個問題:

還是用圖形來分析:

輸出結果如下:

指標陣列和陣列指標

有關陣列指標和指標陣列容易混淆,本文舉例說明兩者的區別,並加以分析。基本概念 指標 inta 1 int p a 指標的指標 int p2p p 簡單陣列 intb 20 指標陣列 int p 10 指標陣列,含有10個指標元素,即每乙個元素都是乙個指標 陣列指標 int p 10 這個指標用來指向...

指標陣列和陣列指標

理解這兩個概念,當從語言學的語法角度開始,定語 名詞,即 的 語句。指標陣列 指標的陣列 陣列指標 陣列的指標。一 指標陣列 元素為指標的陣列 顧名思義,就是說的首先是乙個陣列吧,然後陣列的元素是指標而已。說明形式為 type pointer array constant1 constant2 co...

指標陣列和陣列指標

該文時自己對指標陣列用法的一點總結,還望高手指點不足原文如下 由於以前對指標陣列不太明白,所以自己寫了 乙個小的測試程式來驗證了自己的猜測,先總結如下 指標陣列,由名字就可以知道的該陣列中的成員都是為指標的。其定義的方法為 char p 5 該初定義乙個包含5個char 型別的陣列的指標,由於p本身...