初学者不易建立清晰的指针和reference概念,总结这个表以供快速参考:
假设有对象定义:
MyObjectType obj1;
1. 值传递:
如果函数定义为:
void myFunction( MyObjectType obj);
函数调用:
myFunction(obj); //函数以外对象obj的值不会 改变
2. reference传递:
如果函数定义为:
void myFunction( MyObjectType &obj);
函数调用:
myFunction(obj); //函数以外对象obj的值会 改变
3. 指针传递:
如果函数定义为:
void myFunction( MyObjectType *obj);
函数调用:
myFunction(&obj); //需要dereference(&), 函数以外对象obj的值会 改变
要了解更多关于C++指针的概念请阅读C++基础教程指针篇