C#引用类型赋值时改变

文章探讨了编程中值类型和引用类型的数据在内存中的存储方式。值类型如整数会存储在栈中,而引用类型如string的实例存储在堆中,其变量存储指向对象的地址。对于string,每次赋值都会创建新对象。stringBuilder作为优化手段,避免频繁字符串操作导致的内存开销。数组虽是值类型,但改变元素会直接影响其在内存中的地址内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值类型数据都会存储到栈中。

string a = "小白白";

a是引用类型数据,小白白会存储到堆中,而栈中会存储a的地址

图:

string是特殊的引用类型,它每次赋值时都会新开辟一个空间,然后赋值给新开辟的空间,原地址中的值是不会进行改变。利用stringbuilder(stringBuilder是类型,比如int也是类型),a也会等于大白白。

 数组也是值类型,改变的是地址中的元素,所以str2中地址的元素也跟随str1改变了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值