猿问

为什么输出不会改变

 #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);

}

LUAJ
浏览 1525回答 2
2回答

JustWannaHugU

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;  }

杜发明

楼上正解,C的就是指针这块很绕
随时随地看视频慕课网APP
我要回答