字符串和字符串之间的区别^?

时间:2014-11-12 12:08:59

标签: .net string visual-c++ c++-cli

我已编辑此问题以使自己清楚。 我的问题是。

如果我们定义

字符串a

我们可以将字符定义为[],

但是如果我们定义String ^ a

a []无法定义。

如果两个都是字符串,为什么没有定义[]。

2 个答案:

答案 0 :(得分:0)

String ^是底层字符串的句柄。这些很像C ++中的指针/引用,除了它们为垃圾收集器提供的帮助。这意味着您不需要为C ++中的指针删除内存。

答案 1 :(得分:0)

Microsoft的托管C ++与您在常用C ++中习惯的标准定义完全不同。一个主要的区别是它使用托管指针处理内存分配/释放的方式。您所指的^称为 hat operator ,它用于表示在运行时自动管理的内存状态指针。这意味着您不必使用delete释放先前为其分配的内存。

虽然帽子操作员的有用性/效率存在争议,但在Visual C ++ .NET的情况下,它仍然是管理内存的标准方法。