我是刚入门,自学,不晓得自己问题在哪。求指导下。

img

我想将a,b的值调换,然后定义了一个函数。为啥我定义的这个函数实现不了他的功能啊?

   int a = 2, b = 10;
   public int main()
    {
        func(a, b);
        printf("a=%d,b=%d\n", a, b);
    }
    public void func(int a, int b)
    {
        int temp = a;
        a = b;
        b = temp;
    }

img

你写的这个是把只传过去了,相当于你在func 函数中交换了,形参ab 的值,但是实现不了实参值的交换,回到main 函数里面,还是原来的值,如果想真正实现值的交换,就需要把他们的地址传递过去

img

传值调用,改变的是函数里的数据,未改变你设定a,b的数据,那只是把值拷贝了过去,复制一份,改变的是复制的数据,在函数结束后,也已被销毁