iOS面试汇总

OC中static、const、extern关键字理解

2017-08-30  本文已影响36人  这个优秀瓜

static关键字

static关键字用于修饰变量。

const关键字

  • const关键字用于修饰变量,作用是限定变量的读写权限,const修饰的变量不可变
  • 使用const关键字修饰变量时。const所处的位置不同,所达到的效果不同。总的来说是:const右边的值不可变
static NSString const * str = @"东临碣石,以观沧海";
static const NSString * str = @"东临碣石,以观沧海";

以上两种方式的作用是一样的,字符串str的值(东临碣石,以观沧海)是可以被修改的,而指向str的值的指针是不能被修改的。

static NSString * const str = @"东临碣石,以观沧海";

上面定义的变量str的值(东临碣石,以观沧海)是不可变的。

extern关键字

  • extern作用:用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
  • extern原理:先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。

可以在.m文件中定义全局变量

NSString * const nameKey = @"name";

然后再其他任何地方获取这个全局变量

extern NSString * const nameKey;

注意:我们这里没有使用static修饰

上一篇 下一篇

猜你喜欢

热点阅读