|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 须弥芥子 于 2022-10-11 14:39 编辑
这样的话为什么下面代码不可行?
- #include <stdio.h>
- int sum(int, int [*]);
- int main(void){
- int arr1[2] = {1,2};
- int arr2[2][2] = {&arr1,{1,2}};
- for(int i = 0; i < 2; i++)
- for (int k = 0; k < 2; k++)
- printf("%d\n",arr2[i][k]);
- return 0;
- }
复制代码
本帖最后由 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)[4] = (int (*)[4]) d ;
- for(i = 0 ; i < sizeof(d) / 4 / 4 ; i ++) {
- printf("%2d" , x[i][0]) ;
- for(j = 1 ; j < 4 ; j ++) printf(" , %2d" , x[i][j]) ;
- printf("\n") ;
- }
- }
复制代码
编译、运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- 1 , 2 , 3 , 4
- 11 , 12 , 13 , 14
- 21 , 22 , 23 , 24
- 31 , 32 , 33 , 34
- D:\[00.Exerciese.2022]\C>
复制代码
|
|