static ,const, extern 小总结

2017-07-25  本文已影响9人  Harry_Coding

Static

1.what?
static 静态的意思,用于修饰一个变量,作为私有的全局变量, 仅仅用static 修饰的变量是一个静态变量
2.why?
我们想把一个变量的作用域扩展到整个类的时候,如果仅仅是这样的话,其实我们的OC里的属性完全可以替代。那么我们为什么还会用到它呢?其实被static 修饰的变量或者是常量都有一个比较重要的特性,它会存在静态区,只初始化一次。这是我们可能想用到它,最大一个特点吧
3.how?
static int a = 0; 可以初始化,也可以不初始化,不初始化默认的就是0

Const

1.what?
被用来修饰常量的,表示是一个常量,修饰的变量是不可变的
2.why?
正如上边说的,就是因为他修饰的变量是一个不可改变的,所以我们才会用到他
3.how?
可以加上static 修饰变量 static NSString * const name = @“Perfect”, 表示这个是一个静态的常量,那么就是说他会在开机的时候初始化一次,而且是不可以改变的。注意:const 放在变量的前边是修饰变量的,表示这个变量不可变,但是如果放在*前面或者static 后面,都表示修饰的是一个指针,那么表示这个指针地址不变,但是指针的内容可以改变

Extern

1.what?
刚才讲到的都是一些局部变量,也就是只能在这个类里边使用,其他的类没有办法直接访问这些变量的,extern 修饰的变量正是解决了这一个问题,他所修饰的变量可以全局访问
2.why?
上边的what里边其实已经解释了,就是因为我们想在这个类之外,直接访问这个变量
3.how?
可以直接使用 extern NSString *name = @“perfect” 表示一个全局变量
也可以配合const 使用 extern NSString * const name = @“perfect” 此时这个常量只被初始化一次,并且是全局变量

上一篇下一篇

猜你喜欢

热点阅读