C++传值和传引用
首先你肯定明白一个道理:当初始化一个非引用类型的变量时,初始值被拷贝给变量,此时对变量的改动不会涌向初始值 int n = 0 ; int i = 1 ; // i是n的副本 i = 42 ; // i的值改变,n的值不改变 传值参数的机理完全一样,由于 每次调用函数时都会重新创建它的形参,并用传入的实参对形参进行初始化 ,所以 函数对形参做的所有操作不会影响实参 ,如果我们想让函数改变我们传入的实参本身们就可以用到 指针形参 访问函数外部对象 先看一段代码: int n = 0 ; int i = 1 ; int * p1 = & n ; //p1指向n int * p2 = & i ; //p2指向i * p1 = 42 ; //n的值改变,p1不变 p1 = p2 //现在p1指向了i,但是i和n的值都不变 当执行指针拷贝操作时,拷贝的是指针的值(地址),拷贝之后,两个指针是不同的指针,因为指针可以使我们间接地访问所指向的对象,所以通过指针可以修改对象的值 指针形参也差不都 // 接受一个int类型的指针,然后将指针所指向的对象置0 void reset ( int * ip ) { * ip = 0 ; // 改变指针ip所指向对象的值 ip = 0 ; // 只改变了ip的局部拷贝,实参未被改变 } void reset ( int i ) { i = 0 ; } int