ポインターについて読んでいたとき、突然、ポインターが変数のメモリアドレスを格納する変数に過ぎない場合、すべての整数がポインターとして機能するはずだと思いました。次に、小さなプログラムを作成しました。警告が表示されましたが、何とか機能しました。
int main()
{
int i,j;
i=3;
j=&i;
printf("%d\n%d\n%d",i,j,&i);
return 0;
}
出力は
3
1606416600
1606416600
では、通常の int が機能するのに、なぜ * を追加するのでしょうか?
別の質問は、次のプログラムへの出力に関するものです
int main()
{
int a[] = {1,2,3,4,5,6,7};
int *i,*j;
i=&a[1];
j=&a[5];
printf("%d\n%d\n%d",j,i,j-i);
return 0;
}
出力:
1606416580
1606416564
4
ji = 4 で 16 ではないのはなぜですか?