黑马程序员技术交流社区
标题:
为什么说string类型具有不可变性呢?
[打印本页]
作者:
李永涛
时间:
2012-11-29 23:59
标题:
为什么说string类型具有不可变性呢?
为什么说string类型具有不可变性呢?一旦赋值就不可再改变
string str = “你好";
str = "世界,你好";
那这样不是改变了变量str的值了吗?
复制代码
该怎么解释呢?跟int类型不一样么···
作者:
王继光
时间:
2012-11-30 09:53
string str = “你好"; //这一步应该看成是 在内存中分配一块区域,存贮了 数据“你好”,然后将 str指向 “你好”这个数据的 引用
str = "世界,你好"; //这一步实际上是在内存中 重新分配了一块内存,存贮数据“世界,你好” 然后再将 str指向这块内存 的 新的引用
实际上在上面那个过程中,并没有改变第一块内存区域内的值。
作者:
武江英
时间:
2012-11-30 09:55
int类型在修改值时只修改原内存地址下的值,而string修改值的时候,内存中又开辟了一块新的内存空间给str,原来的值还是存在于内存中。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2