C和C++将数组名解释为地址。但又不是任何情况下都是这样,比如使用操作符sizeof的时候,对于int a[10];sizeof a表示的是整个数张的长度,对于int* p,p又指向数组时,此时的sizeof p仍然是指针的长度,而不是数组的长度。
int a[10];
//在VS2013中 a与&a的值是一样的,&a不是代表a存放的地址吗?为什么会是一样的呢?-------------
a 被解释为地址,确切的说是a[0]的地址,而&a是求整个数组a[10]的地址,恬好和a[0]的地址一样。
int b[5][10];
//在VS2013中 b与&b与*b与b[0]值都是一样的,又该怎么理解呢---------
这个不用再说了吧,b是第一个无素的地址,&b是整个二维数组的地址,*b是第一行的地址,b[0]也是第一行的地址。
[此贴子已经被作者于2016-1-4 10:36编辑过]