二维数组指针是一个指针,它指向一个包含多个数组的数组。每个数组都包含多个元素。
使用二维数组指针时,需要注意以下几点:
- 声明二维数组指针时,需要在数组类型前加两个星号,例如:
int** array;
- 使用二维数组指针时,需要先访问第一维指针,再访问第二维指针,例如:
array[i][j]
- 在分配内存给二维数组指针时,需要使用动态分配内存的方法,例如:
array = malloc(sizeof(int*) * m);
示例代码:
``` #include <stdio.h> #include <stdlib.h>
int main() { int m = 3; int n = 4;
// 声明二维数组指针
int** array;
// 分配内存给二维数组指针
array = malloc(sizeof(int*) * m);
for (int i = 0; i < m; i++) {
array[i] = malloc(sizeof(int) * n);
}
// 使用二维数组指针
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
array[i][j] = i * n + j;
}
}
// 输出二维数组指针的值
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
// 释放内存
for (int i = 0; i < m; i++) {
free(array[i]);
}
free