【发布时间】:2023-01-31 14:34:40
【问题描述】:
很好奇为什么 operation2 可以成功交换 a 和 b,而 operation1 不能。(当你 cout a 和 b 时)
operation1:
void exchange(char *a,char*b)
{swap(a,b);}
operation2:
swap(a,b)
(我已经将我的整个代码压缩成上面的几行) (虽然终于意识到operation1有点废话,但还是想不通为什么不行)
【问题讨论】:
-
由于您没有通过引用传递指针,因此交换发生在
a和b上,它们对于该范围是唯一的。 -
另外,不要使用
exchange作为名称,因为我们已经有myVar = std::exchange(myOldVar, "value-for-old-var");`
标签: c++ function pointers swap