当数组被定义时,如下所示:
有没有一个指针变量可以将多维数组转换为指针?
可能是重复的:
C:创建二维数组的指针
一个数组被定义为:
int k[100];
它可以转换为int*:
int* pk = k;
有没有一个指针变量可以将多维数组转换为指针?
int m[10][10];
??? pm = m;
可能是重复的:
C:创建二维数组的指针
一个数组被定义为:
int k[100];
它可以转换为int*:
int* pk = k;
int m[10][10];
??? pm = m;
int m[10][20];
int (*pm)[20] = m; // [10] disappears, but [20] remains
int t[10][20][30];
int (*pt)[20][30] = m; // [10] disappears, but [20][30] remain
int **
指针不能与内置的二维数组一起使用。 一个int ***
指针也不能与内置的三维数组一起使用。当然可以,你可以有指向多维数组的指针。
int m[10][10];
int (*pm)[10] = m;
int k[100];
int* pk = k;
int m[10][10];
int **ptr = (int **) malloc(10 * sizeof(int*));
for(int i=0;i<10;i++)
{
ptr[i] = m[i];
}