黑马程序员技术交流社区
标题:
数组名访问二位数组
[打印本页]
作者:
fangbuqianxing
时间:
2016-3-29 16:52
标题:
数组名访问二位数组
本帖最后由 fangbuqianxing 于 2016-3-30 00:05 编辑
强调二维数组的数组名是二级指针
分析a与a+i与*(a+i)与*(*(a+i)+j)之间的关系
# include<stdio.h>
int main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("a =%p\n",a);
printf("*a =%p\n",*a);//证明数组名a是一个二级指针
printf("a[0] =%p\n",a[0]);
printf("*a[0] =%d\n",*a[0]);
printf("&a[0] =%p\n",&a[0]);
printf("&a[0][0] =%p\n",&a[0][0]);
printf("**a =%d\n",**a);
printf("a+1 =%p\n",a+1);
printf("*(a+1) =%p\n",*(a+1));
printf("*(a+1)+1 =%p\n",*(a+1)+1);
printf("*(*(a+1)+1)=%d\n",*(*(a+1)+1));
printf("**(a+1) =%d\n",**(a+1));
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
//printf("%d\t",a
[j]);
printf("%d\t",*(*(a+i)+j)); //*(*(a+i)+j)=a
[j]
}
printf("\n");
}
return 0;
}
/*
a =0018FF18
*a =0018FF18
a[0] =0018FF18
*a[0] =1
&a[0] =0018FF18
&a[0][0] =0018FF18
**a =1
a+1 =0018FF28
*(a+1) =0018FF28
*(a+1)+1 =0018FF2C
*(*(a+1)+1)=6
**(a+1) =5
1 2 3 4
5 6 7 8
9 10 11 12
Press any key to continue
*/
作者:
fangbuqianxing
时间:
2016-3-29 16:53
加油。。。。。。。。。。。。。。。。。。。
作者:
枼子
时间:
2016-3-29 22:06
你不头晕吗?
作者:
冷傲阳
时间:
2016-3-29 23:37
加油!!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2