首页 > 解决方案 > 传递给函数时 ^ 引用的确切行为是什么?

问题描述

我是 C++/CLI 的新手。我以前用 C++ 编程过。

我在读一本书,看到如果我将String^ str作为参数传递给函数,并在函数内部写入str = "New String" ,则字符串str在返回 main 后不会将值更改为 "New String"。

^ 应该表现得类似于 C++ 中的指针,所以我期待str改变值。这里发生了什么?

我还尝试了另一个实验List<String^>^。如果我写这段代码:

代码示例

我的输出是:

1
2
CHANGED string

所以看起来它有时表现得像 C++ 中的引用/指针(在 List 情况下),但有时它表现得像按值传递(在 String 情况下)。

有人可以向我解释每种情况下发生了什么吗?提前致谢。我想不通。

标签: functionreferenceparameter-passingc++-cli

解决方案


推荐阅读