m0_57955746
2021-09-29 18:03
采纳率: 66.7%
浏览 26

指针问题关于指针函数和行指针变量

img

为什么这样显示我错误必须是可修改的左值

img


但是这样就是对的

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 已采纳

    int (*p)[2]; 说明了p是数组指针变量,即p是指向列数为2的数组的指针,
    &p[i] ,这个是一个地址,也是一个常量,常量是不能做左值。

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 第一张图:&p[i]去掉&后p[i] = *(p+i)是列指针,&a[i]是行指针,两个都不是一个数量级的,无法赋值
    第二张图:定义为int *p[2];这是一个指针数组,数组存放的是指针,因为a是一个2维数组,所以a[i]其实就是一个地址,是数组第i行的首地址,所以用指针数组来存放地址是合情合理的

    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题