黑马程序员技术交流社区

标题: 关于NSString类型的内存存储位置的问题 [打印本页]

作者: D调的沉默    时间: 2014-5-6 14:18
标题: 关于NSString类型的内存存储位置的问题
NSString * str=@"hello";因为NSString类型是不可变字符串,那么它的存储位置应该是常量区域。但是str又是对象类型,那么它的存储区域应该在堆里啊,堆好像和常量区不是一个概念,所以困惑,NSString类型的对象到底存放在内存的什么区域内。
作者: 脸皮猴    时间: 2014-5-7 09:54
str只是一个指针而已,是一个NSString类型的指针!他可以指向@"hello"
作者: D调的沉默    时间: 2014-5-7 09:58
脸皮猴 发表于 2014-5-7 09:54
str只是一个指针而已,是一个NSString类型的指针!他可以指向@"hello"

但是你知道它存储的@hello这一块不是不可变的嘛,怎么都不能修改里面的内容,然后不可变内容不是在常量区嘛!但是对象是在堆里啊,堆和常量区是两个概念的,那它的在内存中的正确存储位置?
str是个指针它是存放在栈中的,它所存在的代码块结束了,它就释放了,我懂哦:#




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2