为什么说二维数组里面存储的是一维数组
本帖最后由 须弥芥子 于 2022-10-11 14:39 编辑这样的话为什么下面代码不可行?
#include <stdio.h>
int sum(int, int [*]);
int main(void){
int arr1 = {1,2};
int arr2 = {&arr1,{1,2}};
for(int i = 0; i < 2; i++)
for (int k = 0; k < 2; k++)
printf("%d\n",arr2);
return 0;
}
C语言的语法不允许这样做,就是这样
本帖最后由 jackz007 于 2022-10-11 15:03 编辑
这是真的,看看这个代码
#include <stdio.h>
int main(void)
{
int d[] = {1 , 2 , 3 , 4 , 11 , 12 , 13 , 14 , 21 , 22 , 23 , 24 , 31 , 32 , 33 , 34} ;
int i , j ;
int (* x) = (int (*)) d ;
for(i = 0 ; i < sizeof(d) / 4 / 4 ; i ++) {
printf("%2d" , x) ;
for(j = 1 ; j < 4 ; j ++) printf(" , %2d" , x) ;
printf("\n") ;
}
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
1 ,2 ,3 ,4
11 , 12 , 13 , 14
21 , 22 , 23 , 24
31 , 32 , 33 , 34
D:\\C>
页:
[1]