美文网首页
NSString 的内存地址

NSString 的内存地址

作者: 微笑城ios | 来源:发表于2019-06-26 09:47 被阅读0次
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSString *str1 = @"xiaoming";
        
        NSString *str2 = [NSString stringWithFormat:@"xiaoming"];
        
        NSString *str3 = [NSString stringWithFormat:@"xiaoming"];
        
        NSString *str4 = @"xiaoming";
        
        NSLog(@"\nstr1: %p\nstr2: %p \nstr3: %p \nstr4: %p", str1, str2, str3, str4);
    }
    return 0;
}

2019-06-26 09:40:52.294925+0800 test[804:77187] 
str1: 0x100001048
str2: 0xeae43525019535b5 
str3: 0xeae43525019535b5 
str4: 0x100001048
Program ended with exit code: 0

这段结果 :通过类方法stringWithFormat自定义创建的字符串会放在堆里面,即使字符串内容相同,也会再次开辟新空间,然后指针就是在栈里面,保存对象的地址 有所违背, 查找原因中

相关文章

  • NSString 内存地址

    3 int main(int argc, const char * argv[]) {4 @autorel...

  • NSString 的内存地址

    这段结果 :通过类方法stringWithFormat自定义创建的字符串会放在堆里面,即使字符串内容相同,也会再次...

  • NSString 和NSNumber 内存地址?

    今天小伙伴问了一个问题,这两个变量地址是否相同? NSString *a = @"a";NSString *b =...

  • 实际开发中的深浅拷贝问题 - 解答

    NSString copy测试 如图,string1 和 string3 都是 copy,发现内存地址和strin...

  • iOS

    可否使用 == 来判断两个NSString类型的字符串是否相同?为什么? 不能。==判断的是两个变量的值的内存地址...

  • 浅谈深拷贝、浅拷贝

    深拷贝:对象和内存地址均发生改变浅拷贝:只是单纯地拷贝指针。其地址快并没有发生任何改变 NSString copy...

  • NSString 常用类方法

    字符串其实就是一组人类可读的字符序列。 -不要在使用过程中更换字符串对象的指向(内存地址) NSString * ...

  • @property声明(转)

    NSString类型变量的值是不会发生变化的,但变量的内存地址是会发生变化的。copy的用法是复制内容,并且新分配...

  • 内存对齐

    8字节:指针大小、对象、属性 首先打印出对象获取内存地址: 然后打印内存地址:用x打印内存地址 然后打印内存地址:...

  • iOS 把手机号中的4位数替换成****

    -(NSString*)changeTelephone:(NSString*)teleStr{ NSString*...

网友评论

      本文标题:NSString 的内存地址

      本文链接:https://www.haomeiwen.com/subject/jnsqcctx.html