OC_static关键字

144 阅读1分钟

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修饰的局部变量依旧只能在局部使用,当定义它的函数或者语句块结束的时候,作用域随之结束。