【发布时间】:2012-09-30 13:53:47
【问题描述】:
为什么我的参数不能是
void example(int Array[][]){ /*statements*/}
为什么我需要指定数组的列大小?比如说,3
void example(int Array[][3]){/*statements*/}
我的教授说它是强制性的,但我在开学前就在编码,我记得当我把它作为参数时没有语法或语义错误?还是我错过了什么?
【问题讨论】:
-
需要计算您实际访问的项目的相对偏移量。数组本身只是一个线性块,而不是你必须做 (row*colwidth + col) (这有效,顺便说一句),一旦编译器知道二阶数量级,它就会为你完成偏移量。跨度>
-
但是如果我不声明偏移量(col 大小),编译器会默认设置什么?
-
要么你当时没有使用 2+d 数组,要么不是 C。
标签: c arrays parameters multidimensional-array parameter-passing