二维数组int a(3)(0),a和*a的值一样吗?分别是多少?

如题所述

定义数组要用中括号,而不是小括号,这种定义方法是错误的,应该是int a[3][0]

a是int **类型,是数组a的首地址,即第一个元素的a[0][0]的首地址

*a是int *类型,是数组a[0]的首地址,也就是第一个元素的a[0][0]的首地址

所以两者的值相等,具体是多少,那要看你自己的机器了。追问

数组的首地址是不是这个二维数组第一个元素的第一个字节的地址?

追答

对,不管是一维还是二维,数组的首地址都是第一个元素的地址

追问

但我还是不懂为什么a是数组a的首地址?当然我可以背下来,但是不太理解

追答

a是数组名,数组名就是数组的首地址,这样可以理解了吧。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-21
a是地址
*a是第一维的地址
**a是第一个元素的值追问

哪一个的值是*a(0)(0)呢

追答

**a是a[0][0], 不是 *a[0][0].

相似回答