指针和引用作为函数参数传递


#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; }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM