全局静态变量

在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

好处:

定义全局静态变量的好处:

(1)不会被其他文件所访问,修改

(2)其他文件中可以使用相同名字的变量,不会发生冲突。

 

局部静态变量

在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。

  1)内存中的位置:静态存储区

  2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

  3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

 

// 全局变量:只有一份内存,所有文件共享,与extern联合使用。
int a = 20;

// static修饰全局变量
static int age = 20;

- (void)test
{
// static修饰局部变量
static int age = 0;
age++;
NSLog(@"%d",age);
}

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.


[self test];
[self test];

extern int age;
NSLog(@"%d",age);
}

 

posted on 2016-03-29 22:58  钎探穗  阅读(147)  评论(0编辑  收藏  举报