NSString *const 和 const NSString * 的区别

1.变量存储的指针可变,变量存储的值不可变

//A modifiable pointer to a constant NSString (its value can't be modified)
const NSString * str = @"11";
str = @"22";

2.变量存储的值可变,变量存储的指针不可变

//A constant pointer (not modifiable) to an NSString (its value can be modified)
NSString *const str1 = @"33";
str1 = @"44";   //会报错

实例截图:

总结:

由于NSString是指针变量,因此只要保证NSString类型的变量存储的指针不可变就可以定义一个不可更改的NSString变量,定义方法: NSString *const str = @"111"; 

参考链接:

https://stackoverflow.com/questions/22953091/difference-between-nsstring-const-and-const-nsstring

原文地址:https://www.cnblogs.com/wobuyayi/p/8074592.html