传值,传址和传引用
传值 传值方式:将实参的值拷贝给函数或方法,在函数内对形参进行操作,操作的对象是实参的拷贝,对实参本身没有影响,在函数结束返回后,形参被丢弃释放,实参的内容不会被改变。 c++一条基本原则:在默认情况下,参数只能以值传递的方式给函数,被传递到函数的只是变量的值,永远不会是变量本身。 void exchange(int x,int y) { int temp; temp=x; x=y; y=temp;} exchange(a,b);在调用过程中,函数隐含的把实参ab的值分别传给了形参xy, 函数中的操作只是对形参的操作,没有对实参进行任何操作,因此,实参ab的值是不变的。 传址 传址方式:将实参的地址传递给函数,在函数内对形参进行操作等同于对实参进行相同的操作,在函数调用结束返回后,形参被释放,实参的内容是对形参进行操作后的结果。 绕开值传递问题的第一种方法指针传递,是向函数传递变量的地址取代它的值。 void exchange(int *px,int *py) { int temp=*px; *px=*py; py=temp; } int a=4,b=5; exchange(&a,&b); 将ab的地址传递给函数,对 px,*py的操作即是对a,b变量本身的操作。可以实现a,b的值交换。 交换 void swap(int *x, int *y) { int temp; temp =