在C语言中,可以通过以下两种方式传入二维数组:
void myFunction(int arr[][3], int rows, int cols) {
// 函数体
}
int main() {
int myArray[2][3] = {{1, 2, 3}, {4, 5, 6}};
myFunction(myArray, 2, 3);
return 0;
}
在上面的例子中,myArray
是一个2行3列的二维数组,通过myFunction
函数传递给函数。
void myFunction(int *arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
int value = *(arr + i * cols + j);
printf("%d ", value);
}
printf("\n");
}
}
int main() {
int myArray[2][3] = {{1, 2, 3}, {4, 5, 6}};
myFunction((int *)myArray, 2, 3);
return 0;
}
在上面的例子中,myArray
数组首地址被转换为int*
类型,并传递给myFunction
函数。在函数内部,通过指针的形式访问数组元素。
这两种方法都可以传递二维数组给函数,选择哪种方法取决于实际情况和个人偏好。