请问这个是如何重新划分的
#include <stdio.h>int main()
{
int array = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int (*p) = (int (*))&array;
printf("%d\n", p);
return 0;
}
解释:等号右边强制将 array 这个一位数组重新划分成 3 * 3 的二维数组,然后用数组指针指向它
如何看出来划分成3*3的二位数组的
麻烦大佬解释一下
array本身是一个一维数组的首地址,&array就相当于是二维数组的首地址
(int(*))是强制转化为3列的二维数组
转换之后 因为原本一维数组有9个数据,所以是array (int(*))是强制转化为3列的二维数组
请问这个是咋强制转换的 最后的魁拔 发表于 2020-2-3 15:52
(int(*))是强制转化为3列的二维数组
请问这个是咋强制转换的
因为原本就是一维数组的首地址,强制转化之后就是3列二维数组的首地址,转化系统会自动进行的
然后把这个二维数组首地址赋给 int(*p) 这个3列二维数组 的p Aseeker 发表于 2020-2-3 16:02
因为原本就是一维数组的首地址,强制转化之后就是3列二维数组的首地址,转化系统会自动进行的
然后把这 ...
我知道了,谢谢了,
页:
[1]