|
发表于 2021-11-5 20:15:51
|
显示全部楼层
本帖最后由 jhq999 于 2021-11-5 20:25 编辑
- int (*p)[4];//首先(*p)告诉编译器的是p是个指针,后面的[4]告诉编译器这个p是列的大小为4的二维数组的指针
复制代码
也可以这样
- int main()
- {
- int array[3][4] = {
- {0, 1, 2, 3},
- {4, 5, 6, 7},
- {8, 9, 10, 11}};
- int (*p)[3];
- int i, j;
- p = (int(*)[3])(array);
- for (i = 0; i < 4; i++)
- {
- for (j = 0; j < 3; j++)
- {
- printf("%2d ", *(*(p+i)+j));// printf("%2d ", p[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码
还可以这样
- int main()
- {
- int array[3][4] = {
- {0, 1, 2, 3},
- {4, 5, 6, 7},
- {8, 9, 10, 11}};
- int *p;
- int i, j;
- p = (int*)(array);
- for (i = 0; i < 12; i++)
- {
-
- printf("%2d ",*(p+i));
-
- }
- return 0;
- }
复制代码
其实在内存里哪有多维数组全是一维数组; |
|