为什么要区分可变与不可变字符串

为什么要区分可变与不可变字符串

像之前的int、float 类型的可以直接修改,为什么字符串要 分两种?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
慕粉193426891 2018-02-24 16:15:07

NSString *string1 = @“Hello”;   //这里应该是string1 的值是可变的,@"HELLO"不可变,

NSMutableString  *string2=@"word";
                             
OC中的 可变对象和不可变对象的的区别不在于 string1 string2 (他们本质就是指向对象的指针,我们就说他们是指针吧),string1和strin2
这两个值是可以任意更改的,但是@“hello”作为对象他是不可变的,@“word”是可变的, @“hello”存放在内存的只读数据区,@"Word"
可存放在WRDATA区。
    简单讲 OC中的可变对象和不可变对表述的是指 指针所值的那个对象的 可变现,而非指针本身。
如: 我们可以说 srting1所指向的@“hello”是不可变的,直接说@“hello”是不变的也行,但是string1永远可变,他可以指向另外一个字符串

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师