通过“*&”函数的参数

时间:2014-05-17 18:56:29

标签: c++ function pointers parameters reference

我有一个我应该定义的功能(大学练习),就像这样:

void add_str(char* &a, char* b);

它应该将第二个字符串添加到第一个字符串。 我为什么要通过*&函数的参数,什么时候有用?

2 个答案:

答案 0 :(得分:2)

因为您需要创建新空间来保存连接的字符串,并且需要以某种方式将其传回去。此签名允许函数覆盖传入的参数,以便调用者给出的指针将移动到指向新字符串。

这是解决问题的一种非常非常愚蠢的方法,但老师可能试图提出某种观点。希望这是一个很好的。我不喜欢破碎的例子,但是当你想教的东西更常见于太复杂而无法与新手联系的时候,很难想到合法的例子。

答案 1 :(得分:1)

它允许add_str修改传递给a的内容。这就是非const参考参数的用途;它看起来很奇怪,因为参数是指针而不是简单类型。