关于二维数组名
对于a[3][2],a与a[0]指向a[0][0]对吧,可书上说求a[0][2]的地址用*(a+0)+2,事实也可以求出正确结果,可是分析上式,*(a+0)为a[0][0],a[0][0]唯一存储单元,加上一个2得到a[0][2]的地址?我认为a是指向a[0]的而不是指向a[0][0],如果这样理解,*(a+0)就指向了a[0],而a[0]为地址,加2便指向了a[0][2],如果这样理解但是printf("%p %p %p",a,a[0],&a);输出的结果是一样的,怎么理解; 还有数组名如不占内存的话,所谓的标签怎么理解.
人气:224 ℃ 时间:2020-04-21 18:42:02
解答
同学你好:我看了你的问题,是这样的,a[3][2],你关于“a与a[0]指向a[0][0]对吧”的理解是不对的,后面的理解是正确的,不要怀疑自己.标签只是个记号,不占内存.二维数组实际上就是一个数组元素为以为数组的一维数组,简单...
推荐
猜你喜欢