首页 新闻 会员 周边

关于指针的小问题

0
[已解决问题] 解决于 2018-08-28 22:16

include <stdio.h>

void main()

{

void swap(int x,int *y);

int a=5,b=10;

swap(a,&b);

printf("%d,%d\n",a,b);

}

void swap(int x,int *y)

{

int t;

t=x;

x=*y;

*y=t;

}

运行结果5,5

如果a=8其他不变   结果是8,8

 

swap这个函数作用是把a,b互换的意思吧?

不解

 

白日做梦。的主页 白日做梦。 | 菜鸟二级 | 园豆:214
提问于:2018-08-26 22:08
< >
分享
最佳答案
1

因为 a 作为形参实际上传的是 a 的拷贝,而不是 a ,所以函数里面对 a 的改变对外边的 a 都没有影响,所以 a 没变;而 b 传进去时候用了指针,所有对那个指针的改变都会映射到 b 上面,所以最终结果 b 改变了。

奖励园豆:5
Arthurian | 小虾三级 |园豆:1123 | 2018-08-26 23:25
其他回答(1)
0

形参里的数据不会变的

_Roy | 园豆:489 (菜鸟二级) | 2018-08-27 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册