为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出不会改变

为什么输出不会改变

C
LUAJ 2016-09-20 15:31:32
 #include <stdio.h>func(int a,int b){    int temp=a;    a=b;  b=temp;}main(){    int x,y;    x=10;y=20;    func(x,y);    printf("%d,%d\n",x,y);}
查看完整描述

2 回答

已采纳
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

C语言函数参数的基本规则是值传递,所以传递时只能实现实参向形参的单向的、值的传递。

你要实现交换两个值,需要使用指针才能实现值交换。

修改后的程序如下

望采纳

#include <stdio.h>

void fun(int*a,int*b)
{
    int temp=*a;
    *a=*b;  *b=temp;
}
int main()
{
    int x,y;
    x=10;y=20;
    fun(&x,&y);
    printf("%d,%d\n",x,y);
    return 0; 
}


查看完整回答
1 反对 回复 2016-09-20
?
杜发明

TA贡献202条经验 获得超301个赞

楼上正解,C的就是指针这块很绕

查看完整回答
反对 回复 2016-09-20
  • 2 回答
  • 0 关注
  • 1524 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信