注册 登录
编程论坛 C++教室

函数形参里面,*和&如何选择

卖萌的0C 发布于 2022-04-06 10:44, 1671 次点击
写代码的时候发现如果想要改变传入参数的值,我在函数形参那个地方,用*的话,在调用函数的时候使用传入实参的地址(&)就可以。我也可以在形参那个地方使用&,调用函数的时候直接传入实参也可以达到效果。那这两种方法怎么选择则呢,什么时候用*什么时候用&?
求各位大佬帮忙解答一下
3 回复
#2
rjsp2022-04-06 12:04
两者是一样的,你喜欢用什么就用什么。但建议你使用“引用”

因为很多地方没法用指针,比如 重载自增运算符,比如 参数是个临时对象无法取地址,……
#3
卖萌的0C2022-04-08 08:53
回复 2楼 rjsp
好的,谢谢
#4
角动量2022-04-14 08:56
函数形参里面最优先使用的是&(引用)或者是const &(常量引用),对于这两个前者是你希望传入实参给这个函数时你所期望的是该函数修改该传入实参(不会产生拷贝和赋值操作),对于后者你希望该函数使用该实参但是并不想改变传入的实参则使用常量引用(常量引用也不会产生拷贝和赋值操作,使用值的副本)。对于指针*的话你希望的是该函数接受一个结构体或者指向一个函数来作为实参则使用指针实参void Compare(const string &str,function_point name);
:)
1