c语言二维数组问题
#include "stdio.h"
int main()
{
int a[5][5]={{1,3,5,7,9},{11,13,15,17,19},{21,23,25,27,29},{31,33,35,37,39},{41,43,45,47,49}};
int b[5][5]={{2,4,6,8,10},{12,14,16,18,20},{32,34,36,38,40},{42,44,46,48,50},{52,54,56,58,60}};
int i,j;
printf("a数组:\n");
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%3d ",a[i][j]);
printf("\n");
}
printf("b数组:\n");
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%3d ",b[i][j]);
printf("\n");
}
for (i=0;i<5;i++)
{
b[i][0]=a[4][i];
b[i][4]=a[0][i];
}
printf("变化后的b数组:\n");
for (i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%3d ",b[i][j]);
printf("\n");
}
return 0;
}
2022-06-19
则有,
a[0],为数组的一个元素。
a[i]=*(&a[i]),为数组的一个元素。
a+i=&a[i],为元素a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i]无意义。
②若a[i]为二维数组
则有,
a[0],为数组的一个列指针。
a[i]=*(&a[i]),为数组的一个列指针。
a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i],表示第(i+1)行第1列的元素。
③综上所述
(a+i)、a[i]在一维数组和二维数组中的含义不同。
一维数组中
(a+i)表示地址,元素地址,数组名。
a[i]表示元素。
二维数组中
(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)
a[i]表示列指针。
二维公式复习
行指针:
a+i
=&&a[i][j]
列指针:*(a+i)+j=
a[i]
+j=(a+i)[j]=&a[i][j]
元素*(*(a+i)+j)=*(
a[i]
+j)=*(a+i)[j]=
a[i][j]
就这么简单,
你学会了吗?
2022-06-20
则有,
a[0],为数组的一个元素。
a[i]=*(&a[i]),为数组的一个元素。
a+i=&a[i],为元素a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i]无意义。
②若a[i]为二维数组
则有,
a[0],为数组的一个列指针。
a[i]=*(&a[i]),为数组的一个列指针。
a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i],表示第(i+1)行第1列的元素。
③综上所述
(a+i)、a[i]在一维数组和二维数组中的含义不同。
一维数组中
(a+i)表示地址,元素地址,数组名。
a[i]表示元素。
二维数组中
(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)
a[i]表示列指针。
二维公式复习
行指针:
a+i
=&&a[i][j]
列指针:*(a+i)+j=
a[i]
+j=(a+i)[j]=&a[i][j]
元素*(*(a+i)+j)=*(
a[i]
+j)=*(a+i)[j]=
a[i][j]
就这么简单,
你学会了吗?
2022-06-20
则有,
a[0],为数组的一个元素。
a[i]=*(&a[i]),为数组的一个元素。
a+i=&a[i],为元素a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i]无意义。
②若a[i]为二维数组
则有,
a[0],为数组的一个列指针。
a[i]=*(&a[i]),为数组的一个列指针。
a+i=&a[i],为数组的一个行指针,也是列指针a[i]的地址。
*(*(a+i))=*(*&a[i])=*a[i],
*a[i],表示第(i+1)行第1列的元素。
③综上所述
(a+i)、a[i]在一维数组和二维数组中的含义不同。
一维数组中
(a+i)表示地址,元素地址,数组名。
a[i]表示元素。
二维数组中
(a+i)表示行指针,列指针地址,元素地址的地址,以一行列指针为元素的数组的数组名(过渡数组名)
a[i]表示列指针。
二维公式复习
行指针:
a+i
=&&a[i][j]
列指针:*(a+i)+j=
a[i]
+j=(a+i)[j]=&a[i][j]
元素*(*(a+i)+j)=*(
a[i]
+j)=*(a+i)[j]=
a[i][j]
就这么简单,
你学会了吗?