对于二维数组比如一个double number[m][n]
既然number 和number[0]的值都是number[0][0]的地址 那么这两者有什么区别呢
当我定义了一个函数 这个函数用来把一个二维数组的值copy到另一个二维数组 这个函数的形参为什么只能写double number[][n]而不能直接写double * number呢
关于c语言中二维数组形参的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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,即二级指针对应二维数组。
如果对您有帮助,请点击采纳答案好吗,谢谢~~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报