指標陣列和陣列指標的使用

2021-08-03 18:53:03 字數 856 閱讀 8678

問題

程式找錯or程式結果

#include 

int main()

; char **p = str+1;

str[0] = (*p++)+2;

str[1] = *(p+1);

str[2] =p[1]+3;

str[3] =p[0] +(str[2]-str[1]);

printf("%s\n",str[0]); //(空)

printf("%s\n",str[1]); //shenyang

printf("%s\n",str[2]); //nyang

printf("%s\n",str[3]); //ng

return

0;}

分析:

第 1個字串的首位址的存放位址標記為a,其內容為「welcome」;

第 2個字串的首位址的存放位址標記為b,其內容為「to」;

第 3個字串的首位址的存放位址標記為c,其內容為「liaoning」;

第 4個字串的首位址的存放位址標記為d,其內容為「shenyang」;

執行完,**p = str +1後,p指向b.

執行完下一句後,p指向c,而str[0]指向第4個字串「shenyang」後面的元素,因此其內容為空。

執行完下一句後,p沒有移動,str[1]指向p的後乙個元素位址,即d;

執行完下一句後,p[1] 指向d,p[1]+3即指向字串的元素的第4個元素,即『n』字元的位址;

執行完下一句後,因為str[2]-str[1] 等於3,p[0]即指向『n』的位址,所以,str[3]指向yang中的『n』字元的位址;

指標陣列和陣列指標

有關陣列指標和指標陣列容易混淆,本文舉例說明兩者的區別,並加以分析。基本概念 指標 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本身...