c语言小问题,多维数组的指针没看懂,为什么* a是地址,不是应该是值吗?

如题所述

比如一个指向二维数组的指针,它就相当于一个一维数组,其中的每一个元素都指向了一个数组。所以*a的值只是一个指向的一维数组的指针,它的值当然是地址了。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-13
因为是二维数组,*a 相当于 a[0]的,不是值 **a才是值
第2个回答  2013-12-13
就像你说的。*a就是取所在地址的“内容”。不等于它就没地址了。地址总是要有的不然没地方存数值了。追问

那这教材是什么意思。。。那我要地三行第四列的地址该怎么写?

追答

根据首地址和每个数组大小,进行偏移。每个数组元素算4字节。数组首地址2000.
2000+4×(从0数有几个就乘几)然后地址就到了。你最好用OD逆向一下你的程序,能够了解的更加彻底。地址可以用于存地址也可以存数据,存了数据*就读的数据,存了地址*就读出地址.

第3个回答  2013-12-13
它确实是值,只不过这个值是一个地址追问

啊?不懂。。。

第4个回答  2013-12-13
因为你这是单一列出的,前面并没有定义数值,所以最后怎么可能是值的形式呢追问

什么意思?在一维数组里,*p不就是p所指向的值吗?

相似回答