c语言中指针那一章,定义二维数组a[5][6],(*p)[6],&a和a有什么区别?能不能*p=a 求答案…… 5
1个回答
展开全部
a[5][6]
你会发现,a, *a, &a的值是相同的,介意义完全不同
首先这个数组是5行6列, 首先要明白a是一个地址,而且是第一列的地址
a+1是第二列的地址,a+2是第三列的地址....
*a是第一列第一个元素的地址,*a+1第一列第二个元素的地址...
&a是整个二维数组的地址,&a+1是内存中紧跟a[5][6]这块区域的地址
(*p)[6]
这里的p的效果等于a,也是第一列的地址
*p=a
*p是第一行第一个元素的地址,a 是第一行的地址
两者代表的意义不是一个等级,编译会出错
而且这样赋值没有意义
你会发现,a, *a, &a的值是相同的,介意义完全不同
首先这个数组是5行6列, 首先要明白a是一个地址,而且是第一列的地址
a+1是第二列的地址,a+2是第三列的地址....
*a是第一列第一个元素的地址,*a+1第一列第二个元素的地址...
&a是整个二维数组的地址,&a+1是内存中紧跟a[5][6]这块区域的地址
(*p)[6]
这里的p的效果等于a,也是第一列的地址
*p=a
*p是第一行第一个元素的地址,a 是第一行的地址
两者代表的意义不是一个等级,编译会出错
而且这样赋值没有意义
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询