我试图了解第3行中发生的情况。
pos
的结构是什么。我知道从第3行中删除( void *)
使其成为type int*
到int (*)[2]
的赋值,并且数组不能直接复制。那么打字在这里做什么呢?
int a[] = {1,5,-3};
int * p = &a[0];
int (*pos)[2] = ( void *)p;
printf("%d \n",(pos[0][0])); //prints 1
printf("%d \n",(pos[0][1])); //prints 5
printf("%d \n",(pos[1][0])); //prints -3
printf("%d \n",(pos[1][1])); //prints garbage