二維陣列的行位址 列位址,與元素的儲存

2021-08-21 18:12:00 字數 1538 閱讀 2304

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 三個元素組成,而他們有分別是乙個一維陣列 通過我們前面學過的知識可以知道,陣列名是乙個位址,其值是第乙個元素的位址,而此位址的基型別就是陣...