1.NSString
初始状态下是空串
输出结果 是一个地址
NSString的恒定性
当我们使用不同方法创建NSString对象的时候,存储的位置不同。创建在常量区
NSString *str = @"dafasfasf";
其余方式是创建在堆中
常量区中的字符串无法改变,只会创建新的内容,放回新的地址。
创立一个字符串常量的顺序是,系统先在内存中寻找是否有一样的已经存在于系统中的字符串,如果有,直接把地址给指针,没有时才重新分配内存,放入元素,再返回指针。
如果创建在堆里面的空串有多个,它是会创建一个串还是多个?系统在堆去搜索相同的
由上图可知,当栈中的str1地址被回收的时候,常量区中的内存没有被回收。
堆中同理。
2.NSString最常用的方法
a)拼接字符串
NSString *newstr = [NSString StringWithFormat:xxxxx]
下图把多个字符串拼接好了
b)得到字符串的长度
newStr.length;
c) 得到下标的字符
d) 判断两个字符串是否相同
[str1 isEqualToString:str2]
‘==’只能比较两个数的值是否相同,但是不能比较两个指针指向的内容是否一样。
e) 将C语言当中的字符串转换为NSString