C语言指针使用函数交换两个变量的值

C语言指针使用函数交换两个变量的值为什么前面的值和后面的值不一样,如果能使后面的值和前面的值一样?... C语言指针使用函数交换两个变量的值为什么前面的值和后面的值不一样,如果能使后面的值和前面的值一样? 展开
 我来答
魔方的第Qi面
2017-03-13 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:59.9万
展开全部
这个地方会出现不好理解的东西。
调用函数的时候,你放入了int a int b 但是这其实不是你的main函数中的a b只是相当于他们的副本,也就是复制了一个a 和b 传入函数 所以你改变的只是传入的副本 也就是复制的副本a b所以在main函数中打印的ab不会出现变化 依然是a=3,b=6
现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a b的指针,然后吧指针传入到函数里面 这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值。想要理解,可以去百度传值参数和引用参数。纯手打,望采纳
华森装饰cD
2017-03-13 · TA获得超过134个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:47.5万
展开全部
void swap(int *a, int *b)
{
int tmp = *b;
*b = *a;
*a = tmp;
}
int main()
{
int a = 3, b = 6;
printf("a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("a=%d, b=%d\n", a, b);
}
追问
太棒了。
追答
你竟然采纳别人的答案!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式