static关键字用法
- OC中的
static关键字无法修饰属性,也无法修饰方法。 static关键字可以修饰局部变量static关键字可以修饰全局变量
static关键字的作用
- 当一个变量被
static关键字修饰之后,这个变量就会成为一个静态变量,被存储在静态存储区。当代码执行完毕后,这个静态变量不会被回收,下次再执行时将会跳过声明直接使用。 - 如下方代码,当此方法第一次执行时将会创建一个静态变量
num并赋值为 0 ,然后将此静态变量存储到静态存储区,打印结果为 0 。第二次执行时将会直接跳过创建变量进入下一条语句,打印结果为 1 。- (void)output{ static int num = 0; //创建静态变量 num 并赋值为 0 NSLog(@"%d", num++); //打印静态变量 num 的值,num自加 1 } - 被
static关键字修饰的变量虽然被存储到了静态存储区,但在外部依旧无法调用到内部的静态变量,这样可以保证外部无法访问和修改静态变量,也能保证变量名不重复。
static关键字修饰的局部变量与全局变量的区别
- 作用域不同,被
static修饰的局部变量依旧只能在局部使用,当定义它的函数或者语句块结束的时候,作用域随之结束。