(int *)2次元配列の場合に型キャストを使用する必要があるのはなぜですか? もう 1 つ知りたいのは*(*(p+i)+j))、次のコードで を使用して 2 次元配列にアクセスできないのはなぜですか? 常に使用する必要がありますp + col*i + jか? が配列のベースアドレスを含み、と同等である*(*(p+i)+j))場合に使用できないのはなぜですか?p*(*(p+i)+j))a[i][j]
前もって感謝します。
main()
{
int a[3][4] = {
1,2,3,4,
5,6,7,8,
9,0,1,6
};
int *p,i,j;
p=(int *)a; // this is my doubt why did we use int *
for(i=0;i<3;i++)
{
for(j=0;j<4;j++) {
printf("%d",*(*(p+i)+j)); // here is my 2nd doubt
}
}
}