c语言大神进:再问你个问题,麻烦下下 对于二维数组来说,a[i]与&a[i]等价,

问题描述:

c语言大神进:再问你个问题,麻烦下下 对于二维数组来说,a[i]与&a[i]等价,
c语言大神进:
再问你个问题,麻烦下下
对于二维数组来说,a[i]与&a[i]等价,而a+i等价于&a[i],*(a+i)等价于a[i],那么是不是可以说:*(a+i)等价于a[i]等价于&a[i]等价于a+i呢?
1个回答 分类:综合 2014-10-02

问题解答:

我来补答
a[i]与&a[i]等价? 不对啊,两者类型完全不同,一个是int* 一个是 int*[10],只能说两者指向的地址一样.
后面的也都是同样的,不同的类型,同样的地址.
int a[10][10];
if (a[1] == &a[1])
printf("ok\n");
这样是编译不过的.
int a[10][10];
if ((void*)a[1] == (void*)&a[1])
printf("ok\n");
这样是能够返回ok的
再问: 能不能说具体下,不好意思,我是小白,a[i]和&a[i]分别是什么类型呢?
再问: int*[10]什么意思呢?-_-|||
再问: int*[10]是不是涉及到指针数组啊?
再答: a[i]就是一个int的指针,就是int*; &a[i]是一个指向int[]的指针,本质上是一个二维指针,就是int**
再问: 哦哦,谢谢啊
 
 
展开全文阅读
剩余:2000