static的作用:
- 修饰局部变量:
- 只会初始化一次;
- 而且只有一份内存;
-
并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(直到程序结束,这个局部变量才会销毁)
- 修饰全局变量:
- 用static修饰全局变量,那么作用域仅限当前文件访问.
Extern : 可以访问全局的变量
-
项目中添加一个Person类在.m文件中声明一个全局变量并赋值20;
-
此时我想在viewController中访问这个属性.但是无法访问
-
那么此时想访问在Person中的age变量的时候 用extern引用一下就可以了
也就是说:加一个extern,要引用一个变量age,他会现在viewController中找,如果没有在去Person中找.
- 默认情况下,C语言的全局变量,在任何地方都可以访问.
- 只要加上extern就可以访问任何地方的全局变量.
- 由于用extern访问不会定义变量,只是引用,所以是不会分配内存的,
- 由于谁都可以更改全局变量,所以是不安全的