在一维数值里:(假设a[0]的地址为2000)
如:int a[] = {10,9,8,7,6,5};
printf(“%d %d %d”,a,a[0],*a);
----------------------------------------------------------
输出:2000 10 10
在二维数组里:(假设a[0][0]的地址为2000)
如:int a[][2] = {10,9,8,7,6,5};
printf(“%d %d %d %d”,a,a[0],*a,a[0][0]);
-------------------------------------------------------------
输出:2000 2000 2000 10
自我总结:
在一维数组里我们可以看到 a[0] 和 *a 结果是相同的,都是输出了 a[0] 的值,
但是在二维数组时,a[0] 和 *a 的结果 却是都输出了a[0][0]的地址
两者相较,我是不是可以这么认为在一维的情况下,我们是 “自己” 具体到了 a[0] 的位置,所以输出了他的值
但是在二维的情况下,是 “系统” 帮我们具体到了a[0][0]的位置,所以输出到他的地址。同时我们也可以看到,a[0][0]是输出了他的值。
目前学习发现的规律是这样,若有错误之处请前辈批评指正!
若有官方规范的术语,也希望前辈指点指点我一下,谢谢!