15.static的作用

static的作用:

  • 1.修饰局部变量

    • 让局部变量只初始化一次
    • 局部变量在程序中只有一份内存
    • 并不会改变局部变量的作用域,仅仅是改变了局部变量的生命周期(只到程序结束,这个局部变量才会销毁)
      //当a不用static修饰时
      - (void) test {
      int a = 0;
      a ++;
      NSLog(@"a====%d",a);
      
      }
      [self test];
       // a === 1
      //当a用static修饰时  
      - (void) test {
      static int a = 0;
      a ++;
      NSLog(@"a====%d",a);
      }
      [self test];
      // a === 3
  • 2.修饰全局变量

    • 全局变量的作用域仅限于当前文件
      //默认情况下全局变量的作用范围为全局的文件
      1. 当在 A.m 中定义全局变量 int age = 30;若在 B.m 中也定义全局变量  int age = 10,编译后会报错,提示重复定义 age 属性。
      2.若在 A.m 中定义全局变量 int age = 30,在C.m文件中可以访问到,通过 `extern int age` 可以访问到全局变量 age 的值,这样就可以在其他文件中改变age的值,就缺乏安全性。(extern 关键字不会分配新的内存,只是引用,引用顺序是先检查本文件中的属性(age),然后再从其他文件中查找,只要找到就返回)
      3.若全局变量前加 `static`修饰后,如`static int age = 20` 就可以改变age的作用范围,表示age只能在在当前文件中可以访问,其他文件中不可以访问,可以增加安全性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值