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元素的陣列。其實這兩種寫法主要是因為運算子的優先...