weixin_40993974 2017-11-30 14:09 采纳率: 100%
浏览 1263
已采纳

关于c语言中二维数组形参的问题

对于二维数组比如一个double number[m][n]
既然number 和number[0]的值都是number[0][0]的地址 那么这两者有什么区别呢
当我定义了一个函数 这个函数用来把一个二维数组的值copy到另一个二维数组 这个函数的形参为什么只能写double number[][n]而不能直接写double * number呢

  • 写回答

3条回答 默认 最新

  • 战在春秋 2017-11-30 22:04
    关注

    number 和 number[0] 虽然值相同,但它们分别表示的意义并不相同。

    number 是 二维数组第0行的行地址,number + i 指向不同行。
    number[0] 是 二维数组第0行第0列的元素地址,number[0] + i 指向具体的数组元素。
    

    要想使number也可以参加表示具体数组元素的地址,需要使用如下形式:

     *(number+i)+j  
    

    二维数组的行地址和元素地址是两个不同的概念,表示方法有很多种,实践中推荐您选择自己容易理解的形式。

    对于第二个问题,应该用 double** number,即二级指针对应二维数组。

    如果对您有帮助,请点击采纳答案好吗,谢谢~~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题