c++的参数传递分为两种,按值传递和按地址传递。普通情况下,都是按值进行传递的。如下面的定义。
void swap(int i,int j);
void swap(int *i,int *j);
按值传递是将实参的值复制到函数内部的运行栈中,函数内部再操作时,修改的是运行栈中的值,和外面的已经无关了。
看下面的例子。
看看按地址传递,也就引用传递。引用,就是别名的意思。
按值传递和按引用传递,经过我很多的次的误解,什么传地址呀,传值呀什么的,最后归根结底,其实就是传递的是右值还是左值。这一点很重要,就为了这一句话,我写了这个文章记录下来,主要为了让自己好好记住这个问题。
在java开发中,也有传值和传引用一说,但是传引用,并不是引用传递呀。。因为java中的引用其实是右值,不是左值。