关于二维数组地址的问题
如定义一个二维数组int zippo因为zippo是第一行的地址,也是第一行第一个元素的地址,但是zippo是占用两个int大小对象的地址,而zippo是占用一个int大小对象的地址,这不是冲突了吗?
这样为什么导致zippo+1和zippo+1表示值不同呢? 不会
因为任何二维数组必须告知编译器第二维的长度,正是根据这个长度来确定zippo+1应该移动多少距离 BngThea 发表于 2017-11-21 17:31
不会
因为任何二维数组必须告知编译器第二维的长度,正是根据这个长度来确定zippo+1应该移动多少距离
所以zippo虽然和zippo的地址一样,但如果他们加一。编译器会用不同的方式相加,得到的结果是不同的,是这样吗? BngThea 发表于 2017-11-21 17:31
不会
因为任何二维数组必须告知编译器第二维的长度,正是根据这个长度来确定zippo+1应该移动多少距离
还有一个问题为什么要对zippo解引用2次才能得到内层元素的地址呢?{:5_94:} 御笔剑客 发表于 2017-11-21 18:04
所以zippo虽然和zippo的地址一样,但如果他们加一。编译器会用不同的方式相加,得到的结果是不同的, ...
对,是这样的 御笔剑客 发表于 2017-11-21 18:06
还有一个问题为什么要对zippo解引用2次才能得到内层元素的地址呢?
因为二维数组本身就是一个指向指针的指针
所以你看作为形参的时候都是两个*的写法 BngThea 发表于 2017-11-21 18:30
因为二维数组本身就是一个指向指针的指针
所以你看作为形参的时候都是两个*的写法
我明白了,谢谢你了
页:
[1]