ポインターを使用して2つの整数を交換しようとしました...
#include<stdio.h>
int main()
{
int a,b,*i,*j;
printf("Enter two integer:");
scanf("%d%d",&a,&b);
i=&a;
j=&b;
a=*j;
b=*i;
printf("\n %d \t %d",a,b);
return 0;
}
入力は
12 45
出力は
45 45
いくつかの試行の後、b=*i
最初に を割り当ててから を割り当てた場合a=*j
、最初の整数、つまり12
繰り返していることがわかりました。
なぜこれが起こるのですか?ポインターの私の理解では、これが私がやったことです。*j
(つまり、のアドレスに格納されている変数の値a
)b
と*i
(つまり、のアドレスに格納されている変数の値b
) をa
..
このプログラムで実際に何が起こるか説明してください..