魔兽多少装等能打史诗:c语言问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 06:28:21
int a = 20,b=50;
int *x;
x=&a;
x=&b;
在以上c代码中,*x的值为何会指向50而不指向20呢,搞不懂?

你要明白程序是自上而下执行的:
x=&a;
x指向20
x=&b;
x指向50

所以程序结果是x指向50

应为对X的值做了两次修改,第一次指向20 而后又做依次运算 指向50

这个好理解阿,
第一次把装有数值20的a变量的地址给了指针*x,这时指针指向的是变量a的值20;
然后又把装有数值50的b变量的地址给了指针*x,这时指针指向的是变量b的值50了。

上面说的没有错·~强啊·~
就是从上而下运行
先是
x=&a;这里要是加个printf("%d",x);就有个20
x=&b;这里也加个printf...X就有50了
就是1个20,1个50

因为50的地址覆盖了20的。