传值参数
初始化一个非引用类型的变量时,初始值被拷贝给变量,对变量的改动不会影响初始值:
int n = 0;//int类型的初始变量 int i = n;//i是n的值的副本 i = 42;//i的值改变,n的值不变
函数对形参做的所有操作都不会影响实参,在fact函数内对变量val执行递减操作:
ret *= val--;//将val的值减一
指针形参的行为与之类似:
//该函数接受一个指针,然后将指针所指的 void reset(int* ip) { *ip = 0;//改变指针ip所指对象的值 ip = 0;//只改变了ip的局部拷贝,实参未被改变 }
调用reset函数之后,实参所指的对象被置为0,但是实参本身并没有改变:
int i = 42; reset(&i);//改变i的值而非i的地址 cout << "i = " << i << endl;

浙公网安备 33010602011771号