C#string类型(引⽤类型)
名称CTS类型说明
string System.String Unicode字符串
string str1 = "hello ";
string str2 = "world ";
这是⼀个值类型的赋值,但string是⼀个引⽤类型。String被分配在堆上,⽽不是栈上。因此,当把⼀个字符串变量赋给另⼀个字符串时,会得到对内存中同⼀个字符串的两个引⽤。但是,string与引⽤类型在常见的操作上有⼀些区别。例如字符串是不可改变的。修改其中⼀个字符串,就会创建⼀个全新的string对象,⽽另⼀个字符串不会发⽣任何变化。
using System;
class StringExample
{
public static int Main()
{
string s1 ="aaaa";
string s2 = s1;
Console.WriteLine("s1:" + s1);
Console.WriteLine("s2:" + s2);
s1 = "bbbb";
Console.WriteLine("s1:" + s1);
Console.WriteLine("s2:" + s2);
return 0;
}
}
输出结果:
s1: aaaa
c++string类型
s2: aaaa
s1: bbbb
s2: aaaa
改变s1的值对s2没有影响,这与引⽤类型的操作相反,当⽤"aaaa"初始化s1时,就在堆上分配了⼀个新的string对象。在初始化s2时,引⽤也指向这个对象,所以s2的值也是"aaaa",但是当改变s1的值时,并不会替换原来的值,堆上会为新值分配⼀个新的string对象,s2扔指向原来的对象,所以它的值没有变。这实际上是运算符重载的结果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。