通常,我已经看到声明常量的代码就像这样:
static const NSInteger kNum = 1;
static NSString * const kStr = @"A";
我知道为什么const
应该写在NSString *
后面,但我不确定static NSInteger const kNum = 1;
和static const NSInteger kNum = 1;
是否相同。
static NSInteger const
和static const NSInteger
之间有什么区别吗?
答案 0 :(得分:21)
他们是一样的。通过编写以下内容之一,可以从给定类型“派生”常量类型:
const type
type const
在这种情况下,订单无关紧要。
这些是指向常量数据的变量指针:
type const* var
const type* var
这意味着指针可以更改,但数据不能更改(除非你投射它)。您可以从右向左阅读“指向常量类型的指针”。
这是一个指向变量数据的常量指针:
type* const var
请注意绑定。
这意味着指针不能指向别处,但您可以更改数据。你可以从右到左阅读“常量指向 type ”。
毫不奇怪,使指针和数据都保持不变可以这样做:
type const* const var
const type* const var