以指针或reference为参数的C++函数定义与调用对照表

初学者不易建立清晰的指针和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++基础教程指针篇

Leave a Reply

Your email address will not be published.