可以用一个一级指针指向一个二维数组吗?

看到书上写的都是二级指针,如int *p[4]等等,

数组不是在内存中的存储是连续的吗,

为什么不用一级指针直接指向第一个元素呢?

4个回答

直接用一个指针,就可以完成指向数组的功能,无论数组是多少维。
只是指向后,如果控制下标需要自己考虑。其实,数组名就可以认为是一个静态的指针。

91program
91program 回复cflys: 对应数组名, &a和a 是一样的。
5 年多之前 回复
cflys
cflys 谢谢啦!现在知道了,书上用二级指针是为了操作方便。还有int a[5]; &a和a有什么区别呀?
5 年多之前 回复
qq_27398999
qq_2739899???? 回复苏小喵: 你这样是不对的,欺负人
接近 5 年之前 回复
cflys
cflys 同样感谢!
5 年多之前 回复

数组确实是连续的,但不能用一级指针指向一个二维数组,因为一级指针中存的是值的地址,而二级指针存的是指针的地址。

cflys
cflys 写了个程序试了一下,是可以的
5 年多之前 回复

就你的例子而言,int *p[4]是个数组,里面有4个整数指针,但这四个指针执向的整数不要求是连续的,可以是离散存储的,所以这不等价于整数的二维数组。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐