|
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) ) ) ...
评分
-
查看全部评分
|