我给你贴个链接,你看看,然后想想怎么把你问的问题的表达方式修改下:
好吧,受教了,应该是堆栈和托管堆的分配过程,你能帮我解答下吗?谢谢
@王志平: http://blog.csdn.net/syaguang2006/article/details/9347745
你先看下,网上也有,我先回家吃饭。
string s="b", 操作2次 string s="a"+"b"操作3次
引用相当于指针.string s="b",首先"b"是一个常量,在字符串池里.
string s,会分配一个内存空间,算是一次内存操作.
s="b"的时候是一个赋值操作,将变量S的值改为常量b所在堆内存的位置.也就是第二次内存操作
string s="a"+"b",前面那个一样,a+b是不一样,a+b首先读取2个常量,可以肯定不在一个位置,也就是会有2次内存操作
然后进行运算后,会有一个结果,这个结果是一个新对象,也就会再操作一次内存,加上前面一个也就是3次
有一个问题,在内存中堆栈是分开,一个堆空间一个栈空间,一般值类型在栈上,引用类型在堆上
你能跟我讲讲他在堆栈是具体是怎么分配的吗