这是C代码。
1 2 3 4 5 6 7 8 9 |
|
运行结果是
2
为什么a的结果不是3呢?
面对疾风吧2016-11-08 15:44:48
在func函数中,你可以将int *a写成int* a,这样就一目了然了,a是形参。一开始,a的值是main函数里a的地址。这样我们把func形参a换个名字,就叫做d吧。这样整个函数就变成这样了:
1 2 3 4 5 6 7 |
|
好了我们再来看。一开始d是a的地址。所以*d赋值就是给a赋值。但是,b是c的地址,d = b,d就变成c的地址了,那么给*d赋值就是给c赋值了,和a就没有什么关系了。所以只被赋值了第一次。
不知道这样你懂了没,我不善表达,见谅。