c语言二维数组当做形参
时间: 2024-09-02 12:00:17 浏览: 52
在 C 语言中,将二维数组作为函数的形参可以用于传递矩阵数据,使得函数能够操作这块共享的数据。当你需要在函数内部访问并修改这个数组时,需要注意的是,二维数组实际上在内存中是一维连续存储的,可以通过行索引 * 列数来得到数组元素的实际地址。
例如:
```c
void processMatrix(int matrix[][3], int rows, int cols) {
// 函数内部可以直接通过矩阵名和行、列索引来访问元素
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
// 调用示例
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = sizeof(arr) / sizeof(arr[0]); // 获取行数
int cols = sizeof(arr[0]) / sizeof(arr[0][0]); // 获取列数
processMatrix(arr, rows, cols); // 传入二维数组及维度
return 0;
}
```
在这个例子中,`matrix[][3]`表示一个不定尺寸的二维数组,其中每行有3个整数。在 `processMatrix` 函数中,你需要明确提供行数(`rows`)和列数(`cols`),以便正确处理数组。
阅读全文