const修饰常量应该放在哪里?
1、const NSString * name = @"joey";
2、NSString const * name = @"joey";
3、NSString * const name = @"joey";
const永远修饰右边声明,1、2是一样的,都是* name
,3则不同,修饰的是name
。
所以知道区别了吧。如果是字符串,@"joey"
本身是不变的,也就是* name
,会变的是name
,字符串指针修改的一般写法是name = @"joey";
,如果是3这样声明,就不能像这样修改了,编译器会报错。
多提一嘴,为什么1、2是一样?修饰词排列顺序是可以变的,包括static、const
和变量类型,一般写法是变量类型紧跟着变量名,这样方便代码阅读。