|  | 
 
33鱼币 
| 本帖最后由 阁龙1427 于 2016-6-22 10:07 编辑 
 1-
 
 复制代码int array[10] = {0,1,2,3,4,5,6,7,8,9};
int (*ptr)[3] = (int (*)[3])&array;
ptr[1][2] = ?;
2-
 
 复制代码int array[10] = {0,1,2,3,4,5,6,7,8,9};
int *ptr = (int *)(&array + 1);
*(ptr-6) = ?;
3-
 
 复制代码void ( *fun (int, void(*) (int) ) ) (int)
4-
 
 5-
 
 6-
 
 复制代码char *(*(*ptr)[8])(char *p)
 对C语言的声明、指针数组、数组指针、函数指针、二级指针、强制类型转换的理解;
 
 欢迎大家前来探讨自己的理解。
 | 
 
最佳答案
查看完整内容 你这样写,一定会被写程序的组长骂。没有任何意义。仅仅由于学习装逼。 
第一个程序int (*ptr)[3] = (int (*)[3])&array;就是把array分成一个3*3,名字改为ptr的数组。这个即即是方便书写。;
第二个int *ptr = (int *)(&a+1);中的+1不是真的加了个1,而是整个数组最后一个的那个数再后面一个的位置给ptr,那么*(ptr-6)想想都知道是4,这个也是没有什么实际的作用,就是书写方便;
第三个void ( *fun (int, void(*) (int) ) )  ... 评分
查看全部评分
 |