static
static的作用
- 修饰局部变量:
1.延长局部变量的生命周期,程序结束才会销毁
2.局部变量只会生成一份内存,只会初始化一次
3.改变局部变量的作用域
写法:
//方法内部static修饰的变量不管调用与否,只会调用一次
- (void)staticTest
{
// static修饰局部变量
static int age = 0;
age++;
NSLog(@"%d",age);
}
//即调用两次该方法
//打印结果
//1
//2
- 修饰全局变量
1.只能在本文件中访问,修改全局变量的作用域,生命周期不会改
2.避免重复定义全局变量
写法:
// 全局变量:只有一份内存,所有文件共享,与extern联合使用。
// 写在方法外部
// static修饰全局变量
static int age = 20;
//调用
extern int age;
NSLog(@"%d",age);
//打印结果
//20
extern
extern作用:
- 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
extern工作原理:
- 先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。