指標陣列與陣列指標

2021-05-26 05:03:41 字數 963 閱讀 6174

1.     指標陣列

指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。

定義的一般形式為:

型別說明符   *指標陣列名[陣列長度]

例如:int *p[3]     宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成

從運算子的優先順序分析,由於[ ]的優先順序大於*,所以p先於[ ]結合成乙個一維陣列,即p[0],p[1],p[2];然後這個一維陣列的每個元素再分別於*結合,即*p[0],*p[1],*p[2]。

程式舉例:

用指標程式設計輸入3個字串,對字串進行氣泡排序法排序,輸出排序結果

#include

#include

int main()

printf("after sorting.../n");

for(i=1;i<=3;i++)

printf("%d   %s/n",i,str[i]); }

2.     陣列指標

陣列指標是乙個指標,指向陣列的。

定義的一般形式:

型別說明符 (*陣列指標名)[陣列長度]

例如:int (*p)[3],宣告乙個指標,陣列指標p,指向存放有3個int型別的陣列。

從運算子的優先順序來看,()的優先順序大於[ ],所以p先於*結合成乙個指標,然後再指向乙個陣列,這個陣列中含有3個int型別數。

陣列指標類似於二維陣列,int (*p)[3], int pa [ ][3], 此時p與pa 可以相互替換,賦值時,可以pa直接賦給p。

程式舉例:

int main() ;

int i,(*p)[3];

p=pa;

printf("輸出指標陣列:/n");

for(i=0;i<6;i++)

printf("%d/n",*(*p+i));    //與printf(「%d/n」,*(*pa+i));等效 }

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

陣列 指標陣列與陣列指標

一 陣列型別 int a 10 printf a d,a 1 d n a,a 1 printf a d,a 1 d n a,a 1 輸出結果 2 陣列元素的首位址是常量,不能修改,這是為了釋放記憶體空間所必需的,否則找不到釋放記憶體空間的首位址了 3 定義乙個陣列型別 定義陣列型別的格式如下 typ...

指標陣列與陣列指標

呵呵,實在是厭倦了繞口的解釋。指標陣列,故名思義,就是指標的陣列,陣列的元素是指標 陣列指標,同樣,就是直想陣列的指標。簡單舉例說明 int p 2 首先宣告了乙個陣列,陣列的元素是int型的指標。int p 2 宣告了乙個指標,指向了乙個有兩個int元素的陣列。其實這兩種寫法主要是因為運算子的優先...