C语言 用指针接收二维数组,指针是一级指针还是二级指针
时间: 2024-03-30 09:30:45 浏览: 85
C语言是一种通用的高级编程语言,广泛应用于系统软件开发和嵌入式系统等领域。它具有简洁、高效、灵活的特点,被认为是一种较为底层的编程语言。
在C语言中,可以使用指针来接收二维数组。指针是一种特殊的变量类型,它存储了一个内存地址,可以用来访问该地址上存储的数据。
当使用指针接收二维数组时,需要使用二级指针(指向指针的指针)。这是因为二维数组在内存中实际上是按行存储的,每一行都是一个一维数组。通过使用二级指针,可以实现对每一行的访问。
下面是一个示例代码,演示了如何使用指针接收二维数组:
```c
void printArray(int** arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int rows = 3;
int cols = 4;
// 动态分配二维数组内存
int** arr = (int**)malloc(rows * sizeof(int*));
for (int i = 0; i < rows; i++) {
arr[i] = (int*)malloc(cols * sizeof(int));
}
// 初始化二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 使用指针接收二维数组并打印
printArray(arr, rows, cols);
// 释放内存
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
阅读全文