static关键字的作用

1.函数体内static变量的作用范围为该函数体,不同于auto变量,改变量的内存只被分配一次,因此其值在在此调用时维持上次的值

2.在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其他函数访问

3.在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内

4.在类中static成员变量属于整个类所拥有,对类的所有对象只有拷贝

5.在类中的static成员函数属于整个类所拥有,这个函数不接受this指针,因而只能访问类的static成员变量

举个例子:

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

[self a];

[self a];

}

-(void)a

{

static int a = 10;

for (int i = 0 ; i<10; i++) {

a++;

NSLog(@"%d",a);

}

NSLog(@"等于:%d",a);

}

输出结果为:

2016-03-04 23:20:41.679 static练习[4242:2555220] 11

2016-03-04 23:20:41.680 static练习[4242:2555220] 12

2016-03-04 23:20:41.680 static练习[4242:2555220] 13

2016-03-04 23:20:41.680 static练习[4242:2555220] 等于:13

2016-03-04 23:20:41.680 static练习[4242:2555220] 14

2016-03-04 23:20:41.680 static练习[4242:2555220] 15

2016-03-04 23:20:41.680 static练习[4242:2555220] 16

2016-03-04 23:20:41.680 static练习[4242:2555220] 等于:16

他会维持它上次被赋值的值,不会被重新的init

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。 第二...
    屎倒淋头还嚼便阅读 452评论 0 1
  • 分别从函数,模块,和类三方面就static 修饰的变量和函数进行说明:1.函数体内static变量的作用范围为该函...
    JosephCheng阅读 392评论 0 0
  • 1.函数体中的 static 变量的作用范围为该函数体,该变量的内存只被分配一次, 因此其值在下次调用时仍维持上次...
    March_Cullen阅读 212评论 0 1
  • (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次, 因此其值在下次...
    评评分分阅读 384评论 0 3
  • 转发请注明出处:安卓猴的博客(http://sunjiajia.com) 本节课程将学习以下内容: 静态成员变量的...
    GitOPEN阅读 237评论 1 2