我有一个我应该定义的功能(大学练习),就像这样:
void add_str(char* &a, char* b);
它应该将第二个字符串添加到第一个字符串。 我为什么要通过*&函数的参数,什么时候有用?
答案 0 :(得分:2)
因为您需要创建新空间来保存连接的字符串,并且需要以某种方式将其传回去。此签名允许函数覆盖传入的参数,以便调用者给出的指针将移动到指向新字符串。
这是解决问题的一种非常非常愚蠢的方法,但老师可能试图提出某种观点。希望这是一个很好的。我不喜欢破碎的例子,但是当你想教的东西更常见于太复杂而无法与新手联系的时候,很难想到合法的例子。
答案 1 :(得分:1)
它允许add_str
修改传递给a
的内容。这就是非const参考参数的用途;它看起来很奇怪,因为参数是指针而不是简单类型。