指標(三) 指標陣列

2021-09-26 21:15:11 字數 2820 閱讀 3320

指標陣列定義

一維指標陣列的定義形式

型別名  *陣列名[陣列長度];

char  *p[5];

乙個陣列,若其元素均為指標型別資料,稱為指標陣列,

指標陣列中的每乙個元素都相當於乙個指標變數。

指標陣列的初始化

使用位址為指標陣列初始化

char *p[5]=;

指標陣列和二級指標

int main(  )

;char *temp;                         /*定義指標 *temp,作為臨時變數交換兩個字串*/

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

for(j=i+1;j<4;j++)

if ( strcmp(str[i],str[j]  ) > 0 )

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

printf(「%s\n」,str[i] );

return 0;

}訪問二維陣列中的元素

int a[3][3]= ;

int *pa[3] = ;

(1)  二維陣列的每一行都可以看成乙個一維陣列,a[0],a[1],a[2]為陣列名,

所以a[0],a[1],a[2] 是位址。

(2) 對指標陣列中的第i 個元素, pa[i] 指向二維陣列第i行的第乙個元素。

(3) pa[i] 移動到第j列,指向a[i][j]元素

*(pa[ i ]+j) 從指標陣列元素的位址訪問後續元素;

*(a[ i ]+j )    從一維陣列的首位址訪問後續元素;

*(*(a+i )+j ) 從二維陣列的首位址訪問後續元素;

a[ i ] [ j ]       二維陣列下標法

上述四個表示式等價

指標的指標:指向指標變數的指標變數。指標的指標存放的是指

針變數位址。(二級指標)

指標的指標的定義

格式: 型別 **指標變數名;

int i=2; /* 定義整型變數i */

int *p1,**p2;            /* 定義p1為整型指標,定義p2為整型指標的指標 */

p1=&i;                     /* i的位址=>p1,即指標p1指向變數i */

p2=&p1;                  /* 指標p1的位址=>p2,即指標p2指向指標p1 */

對變數i的訪問 i, *p1, **p2。

使用指向指標的指標。

/*二級指標應用*/

#include

int main()

;/*定義指標陣列,並用字串為其初始化*/

char **p;

int i;

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

return 0;

}例:乙個指標陣列的元素指向整型資料。

#include

int main( )

;int *num[5]=;

int **p, i;

p=num;

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

return 0;

}指標與陣列的等價性--陣列名代表起始位址

 乙個一維陣列和乙個指標等價,都代表位址,都可以訪問陣列中

的所有元素;int a[10] 與指標 int *pa

 乙個二維陣列,可以看成是乙個一維陣列,每個元素又是個一維

陣列;int a[3][4] 與int a[3]=

 乙個指標陣列,指向二維陣列的每一行,指標陣列的陣列元素是

指標,所以指向指標陣列的指標就是指標的指標。即,可以使用

「指標的指標」指向指標陣列。int *pa[3],int a[3][4]與int **p

等價指標說明 含 義

int i; 定義整型變數i

int *p; p為指向整型資料的指標變數

int a[10]; 定義整型陣列a,它有10個元素

int *p[10]; 定義指標陣列p,它由10個指向整型資料的指標元素組成

int (*p)[10]; p為指向含10個元素的一維陣列的指標變數

int f( ); f為帶回整型函式值的函式

int *f( ); p為帶回乙個指標的函式,該指標指向整型資料

int (*p)( ); p為指向函式的指標,該函式返回乙個整型值

int **p; p是乙個指標變數,它指向乙個指向整型資料的指標變數

指標與多維陣列

指標(2)指標陣列 陣列指標 陣列指標陣列

都說指標是c語言的精華所在。今天繼續對指標的探索!指標下一 指標陣列 陣列指標 指標陣列 是存放指標的陣列。如 int p 5 該陣列長度為5,存放的是指向整型變數的指標。陣列指標 是乙個指向陣列的指標。如 int p 5 這是乙個指向長度為5的整型陣列的指標。1.陣列指標在一維陣列中的應用 int...

了解指標(3) 指標和陣列

1 一般而言,陣列名代表了陣列本身,但如果把陣列名看做指標的話,它指向陣列的第乙個元素的位址。例1 int array 10 int value value array 0 也可寫成 value array value array 1 也可寫成 value array 1 value array 2...

c指標點滴三(指標運算)

1 include 2 include 3 4void main3 512 13 void main4 14 24 system pause 25 26 27void main5 28 30int p5 a 2 31 printf d a 2 32 p5 p5 2 相當於在陣列內部向後移動兩個元素的...