int s[4][2]= {
{1234,56},
{1212,33},
{1434,80},
{1312,78}
};
int i,j;
for(i=0;i<=3;i++)
{
printf("\n");
for(j=0;j<=1;j++)
{
printf("%d ",*(s[i]+j));
}
}
出力表示は
1234,56 1212,33 1434,80 1312,78
私たちが知っている*(&Variable)
ように、変数の値を出力しますが、上記のプログラムで同じ概念を実装すると...
int s[4][2]= {
{1234,56},
{1212,33},
{1434,80},
{1312,78}
};
int i,j;
for(i=0;i<=3;i++)
{
printf("\n");
for(j=0;j<=1;j++)
{
printf("%d ",*(&s[i]+j));
}
}
出力は、配列の各要素のアドレスを示しています。
なぜこれが起こっているのですか?出力が配列の要素の値と等しくないのはなぜですか??