考虑以下代码
#include<stdio.h>
void main()
{
int s[4][2] =
{
{20,1},
{21,2},
{22,3},
{23,5}
};
int (*p)[2];
int i,j,*pint;
for( i=0;i<=3;i++)
{
p=&s[i];
pint= (int *)p;
for(j=0;j<=1;j++)
{
printf("%d \n", *(pint + j));
}
}
}
该代码基本上创建一个二维数组,然后创建一个指向一维数组的指针。然后用代码 p = &s[i]; 初始化指向一维数组的指针。
下一行初始化一个指向整数“品脱”的指针。品脱 = (int *)p;
我想知道为什么下面的代码行不起作用。这是合乎逻辑的。品脱 = p;