《指標的程式設計藝術(第二版)》一3 3 陣列指標

2021-09-23 16:41:51 字數 1358 閱讀 3757

指標的程式設計藝術(第二版)

陣列指標(pointers of array)表示陣列的元素,都是指向某個資料型別的指標,如

char *parr[4] = ;
由於[ ]運算子的優先順序高於*運算子,因此,parr是4個元素組成的陣列,陣列中的每個元素都是指向char資料型別的指標。如果將上述的定義用圖形來表示的話,則可以很快得到答案。

這條語句的陣列名為parr,表示第乙個元素parr[0] 的位址,而且是乙個指標常量,所以*parr是parr[0],而parr[0]是「department」字串中d字元的位址。

parr可視為二維陣列(因為指標(*)和陣列()是互通的),我們可以使用下列3種方法:

1.兩個,如*parr;

2.乙個,搭配乙個[ ],如parr[0];

3.兩個[ ],如parr0。

來輸出department字串中的d字元。除了上述3種方法外,其餘的表示法將得到位址。請參閱範例pointerofarray-5。

範例pointerofarray-5

/* pointerofarray-5.c */

#include #include int main()

;  printf("*parr[3] = %c\n", *parr[3]);

printf("**(parr+3) = %c\n", **(parr+3));

printf("parr[3][0] = %c\n", parr[3][0]);

printf("parr[2] = %s\n", parr[2]);

printf("*(parr+2) = %s\n", *(parr+2));

system("pause");

return 0;

}

輸出結果

從程式可知,要輸出某個字串的字元,可以使用parr[3]、

(parr+3)、parr3 這3種方法,並以%c作為其格式(因為parr的每個元素都是指向char的指標),而輸出字串只需要知道字串的第乙個字元的位址就可以,並以%s格式輸出,如parr[2]和(parr+2)都是指向某乙個字元的位址。

繼續上面的例子,如果想輸出某字串中的子字串,如「department」字串中的「ment」,則可使用下列語句之一來輸出:

1.printf(「%s」, parr[0]+6);

2.printf(「%s」, *parr+6);

《指標的程式設計藝術(第二版)》一1 5 練習

指標的程式設計藝術 第二版 1 以下是linda所撰寫的程式,請你幫她debug一下。addressbugs5.c include include int main 2 以下是jennifer所寫的程式,請你幫她debug一下。addressarraybugs5.c include include ...

《指標的程式設計藝術(第二版)》一1 4 結構

指標的程式設計藝術 第二版 談完了陣列後,接著討論結構。結構是由多個不同資料型別所組成的乙個集合體。我們以範例addressstruct來加以說明。範例addressstruct addressstruct.c include include int main 定義結構變數,並設定其初值 struc...

C程式語言(第二版)3 3

3 3 編寫函式expand s1,s2 將字串s1中類似與a z一類的速記符號在字串s2中擴充套件成等價的完整列表abc.xyz。該函式可以處理大小寫字母和數字,並可以處理a b c a z0 9與 a z等類似的情況 include includevoid expand char result,...