我想将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;
}
你写的这个是把只传过去了,相当于你在func 函数中交换了,形参ab 的值,但是实现不了实参值的交换,回到main 函数里面,还是原来的值,如果想真正实现值的交换,就需要把他们的地址传递过去
传值调用,改变的是函数里的数据,未改变你设定a,b的数据,那只是把值拷贝了过去,复制一份,改变的是复制的数据,在函数结束后,也已被销毁