C 语言中 static 关键字的作用
- 在模块(文件)内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内。即对其他模块隐藏。
- 函数体内 static 变量的作用范围为该函数体,该变量被分配到静态存储区,所以内存只被分配一次(只初始化一次,并且默认初始化为0),因此其值在下次调用时仍维持上次的值。即具备持久性和默认值为0。
OC 中 static 关键字增加的作用
- 在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的 static 成员变量。
extern 关键字
- 在模块中使用其他模块声明的全局变量,使用 extern 关键字来获取。
const 关键字
- const 关键字修饰右边的变量,这个变量不可修改(只读的)。
- 注意
I 常量指针
// 初始化之后不能赋值,指向的对象可以是任意对象,对象可变。
NSString * const pt1;
II 指向常量的指针
// 初始化之后可以赋值,即指向别的常量,指针本身的值可以修改,指向的值不能修改
const NSString * pt2;
III 指向常量的常量指针
const NSString * const pt3;