iOS中NSString *const 和const NSStr

2021-11-05  本文已影响0人  男人宫
   NSString *const str1 = @"你好";
    //str1 = @"hello"; //报错,不能重新赋值
    //解析:const在NSString *后面.后面的值不能改变,是一个常量.和其它语言(如js)的const a = 10,效果一样.a就不能变化了
    const NSString * str2 = @"你好";
    NSLog(@"%p",&str2); //0x7ffeea646100 str2在栈区的内存地址
    NSLog(@"%p",str2); //0x100f33020 //坑里放的值,其实就字符串对象的地址
    str2 = @"hello";
    NSLog(@"%p",&str2);//0x7ffeea646100 str2在栈区的内存地址
    NSLog(@"%p",str2);//0x100f33060
    //解析:const放在最前面修饰,指的是该变量的的的值,即本身在栈中的内存地址不变即可.至于里面存的值则是可以变化的
    //重点理解:自身的内存地址和指向的内存地址
上一篇下一篇

猜你喜欢

热点阅读