#include "stdafx.h" #include <iostream>
using namespace std; void reset( int *i ) { //解引用
*i = 0; } void reset( int i ) { //只改變了i的局部拷貝,並未改變實參的值
//調用函數,實質上將形參使用實參的值初始化, 將實參的值拷貝給i
i = 0; } void reset_(int &i) { //i是傳給reset函數的對象的另外一個名字(而且可以避免拷貝,對於大型對象作為參數的情況可以提高效率)
i = 0; } int _tmain(int argc, _TCHAR* argv[]) { int p = 1 , q =1, w = 1; reset(p);//int作為函數參數,不能改變p的值
reset( &q );//指針作為函數參數,能改變q的值
reset_(w);//形參i為對象w的引用,改變i即使改變w,能改變w的值
cout << "p = " << p << endl; cout << "q = " << q << endl; cout << "w = " << w << endl; getchar(); return 0; }