我试图用指针交换两个整数......
#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
..
请解释这个程序中真正发生的事情..