7个回答
展开全部
如果一个数组的名为a,不管是几维,它表示的一定是a[0]的地址,而不是其他。
比如有
int a[3][4];//a[0]~a[2]各自是一个int[4]数组,a表示a[0]的地址(也就是一个int[4]的地址)
int x[4]; //x[0]~x[3]各自是一个int变量,x表示x[0]的地址
int y; //y是一个int变量,
再有
int* p;
那么,p=&y;是正确的,p=x;和p=&x[0];也是正确的,但p=a;和p=&a[0];是错误的。
而如果定义int(*q)[4];那么q=a;和q=&a[0];会是正确的。
比如有
int a[3][4];//a[0]~a[2]各自是一个int[4]数组,a表示a[0]的地址(也就是一个int[4]的地址)
int x[4]; //x[0]~x[3]各自是一个int变量,x表示x[0]的地址
int y; //y是一个int变量,
再有
int* p;
那么,p=&y;是正确的,p=x;和p=&x[0];也是正确的,但p=a;和p=&a[0];是错误的。
而如果定义int(*q)[4];那么q=a;和q=&a[0];会是正确的。
展开全部
a 表示数组首地址 a[0][0] ,a[0] 都是该数组首地址 都是对的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a表示单个成员地址,表示不了a[0]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a表示a[0][0],但是和a[0]是相等的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询