关于二维数组的问题 a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。 我的理解
关于二维数组的问题a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。我的理解是:a[1]是指一行的地址,但&a[1][0是指一个元素的地址,两者应该不等...
关于二维数组的问题
a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。
我的理解是:a[1]是指一行的地址,但&a[1][0是指一个元素的地址,两者应该不等价啊?
求解…… 展开
a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。
我的理解是:a[1]是指一行的地址,但&a[1][0是指一个元素的地址,两者应该不等价啊?
求解…… 展开
展开全部
a[1]与&a[1]不等价哦,二者仅仅是数值上相等,但含义不同
比如有int a[3][4]; &a[1]是行指针,类型是int(*)[4],和a的类型相同,而a[1]是个int*
a[1]与&a[1][0]是等价的,二者类型和数值都相同
比如有int a[3][4]; &a[1]是行指针,类型是int(*)[4],和a的类型相同,而a[1]是个int*
a[1]与&a[1][0]是等价的,二者类型和数值都相同
追问
那为什么教材上说a[1]与&a[1]是等同的?
追答
那教材上说错了
这很容易验证啊:
#include <stdio.h>
int main()
{
char a[3][7];
printf(" a[1]=0x%x\n &a[1]=0x%x\n",a[1],&a[1]); //数值上是一样的
printf(" a[1]+1=0x%x\n&a[1]+1=0x%x\n",a[1]+1,&a[1]+1); //含义不同了,a[1]+1偏移1个字节,&a[1]+1偏移7个字节
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询