永发信息网

为什么代码错误,*p不能用*(*(p+i)+j)输出?

答案:1  悬赏:10  手机版
解决时间 2021-02-16 05:58
  • 提问者网友:疯孩纸
  • 2021-02-15 13:44
为什么代码错误,*p不能用*(*(p+i)+j)输出?
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-02-15 14:57
p是一维指针,即使它存储了一个地址,也需要强制转换后才能当做二维指针使用。
二维数组和二维指针的存储方式并不相同,不能简单的直接使用二维指针去访问二维数组。

追问就是说多维数组需要用这类(*p)[]指针是吧?
二维数组和二维指针的存储方式并不相同,不能简单的直接使用二维指针去访问二维数组。这句可以详细点吗?追答二维数组,是可标记一维地址的一个序列存储,M*N的二维数组,其占用的是一个连续的M*N大小的内存空间,加上一个头地址记录空间。

二维指针,在完成初始化M*N大小之后,占用的是M个指针标记空间,和M个不一定连续的N长度内存空间,总占用为M*(N+1)内存。
两种格式都不一样,不能简单的转换操作。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯