|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Hacker_Jack 于 2017-3-20 20:21 编辑
甲鱼的作业解析有一道题看不懂。求鱼油给予详细解说,那个二维数组是怎么变出来的。
- #include <stdio.h>
- int main()
- {
- int array[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
- int (*p)[3] = (int (*)[3])&array;
- printf("%d\n", p[2][2]);
- return 0;
- }
复制代码
就是这句 int (*p)[3] = (int (*)[3])&array;甲鱼说等式后的语句让原先的数组重新划分为3*3的二维数组
我表示看不懂。。
(*p)[3]其实是指向多维数组元素的指针变量,中括号里的数字3就是二维数组里的列数。也就是把array这个一维数组排成一个3X3的二维数组,第一行a[0]={1,2,3} ,第二行a[1]={4,5,6},第三行a[2]={7,8,9},所以p[2][2]就是第三行的第三列了,所得为9.
|
|