1、二維陣列中,陣列名a的值,是陣列a首元素a[0][0]的位址,即&a[0][0],第一行第乙個元素的位址;
2、二維陣列中,陣列名a+1是陣列a的元素a[1][0]的位址,即&a[1][0],第二行第乙個元素的位址;
1、二維陣列中,a[0]的值,即該陣列的首元素a[0][0]的位址,即&a[0][0];
2、二維陣列中,a[0]+1的值,是陣列元素a[0][1]的值,即&a[0][1];
1、二維陣列中,「a[0]+1」是指向陣列元素a[0][1]的位址,「a[1]+2」是指向陣列元素a[1][2]的位址;
2、同樣的,二維陣列中,「*(a+1)+2」是指向陣列元素a[1][2]的位址,與「a[1]+2」相等;
注:*(a+1)表示第2行的行位址;
*a+1表示第一行第二個元素的位址;
3、二維陣列中,*(*(a+1)+2))是陣列元素a[1][2]的值!!!
/*
*作 者:hh
*完成日期:2023年7月25日
*版本號:v1.0
**問題描:二維陣列,元素位址的表示,行列位址的表示;
*輸入描述:;
*程式輸出:
*/#include int main()
,}; int i,j;
int *p1,*p2,*p3,*p4,*p5,*p6;
printf("array a is :\n");
for(i=0;i<2;i++)
printf("\n");
}printf("array b is :\n");
p1=a;//二維陣列的陣列名,即首元素a[0][0]的首位址;
p2=a+1;//a+1是陣列a的元素a[1][0]的位址,即&a[1][0]
p3=a[0];//同a[0][0]的位址,即第一行第乙個元素的位址
p4=a[1];//同a[1][0]的位址,即第二行第乙個元素的位址
p5=a[0]+1;//指向第一行,第二列元素的位址;
p6=a[1]+1;//指向第二行,第一列元素的位址;
printf("*(*(a+1))指向的值是:%d\n",*(*(a+1)));
printf("*(a+1)+2指向的值是:%d\n",*(*(a+1)+2));
注:在二維陣列a[i][j]中,a[i]是「行名」,等價於指標;
a[0]等價於a,都表示指標;
a[1]等價於a+1,都表示指標;
a[1]+1等價於*(a+1)+1,都表示指標;
注意防止越界!
二維陣列元素的位址
一維陣列元素的位址大家都比較容易理解,但對於二維陣列,就很容易搞混了.今天我又被這個問題給弄糊塗了,翻了翻老譚的書本,對這個問題有了更深的認識.首先給出乙個二維陣列a,它的定義為 int a 3 4 a陣列包含3個行元素,a 0 a 1 a 2 而每個行元素又是乙個一維陣列,它包含4個元素.從二維陣...
二維陣列元素的位址
一維陣列元素的位址大家都比較容易理解,但對於二維陣列,就很容易搞混了.今天我又被這個問題給弄糊塗了,翻了翻老譚的書本,對這個問題有了更深的認識.首先給出乙個二維陣列a,它的定義為 int a 3 4 a陣列包含3個行元素,a 0 a 1 a 2 而每個行元素又是乙個一維陣列,它包含4個元素.從二維陣...
二維陣列和陣列元素位址
二維陣列和陣列元素的位址 先給出一下定義 int p,a 3 4 1.二維陣列a由若干個以為陣列組成 像上面定義的陣列a,我們可以理解為由a 0 a 1 a 2 三個元素組成,而他們有分別是乙個一維陣列 通過我們前面學過的知識可以知道,陣列名是乙個位址,其值是第乙個元素的位址,而此位址的基型別就是陣...