十八:static和extern的基本用法

本文详细解释了静态关键字static和外部变量声明关键字extern的作用与用法。对于static,它可以使局部变量仅创建一次,并且限制全局变量的作用域。而对于extern,则用于声明一个在其他文件中定义的变量。

一、static的作用:

  1、修饰局部变量:让局部变量只创建一次,局部变量在程序中只有一份内存!并不会改变变量的作用域

例如:

 1 void test()
 2 {
 3     int a = 0;
 4     a++;
 5     NSLog(@"a = %d",a);
 6 }
 7 
 8 int main(int argc, const char * argv[]) {
 9     @autoreleasepool {
10         for (int i=0; i<3; i++) {
11             test();
12         }
13     }
14     return 0;
15 }

  打印结果为:

1 2016-07-08 20:47:02.315 static、copy和extern的基本使用[11489:914128] a = 1
2 
3 2016-07-08 20:47:02.316 static、copy和extern的基本使用[11489:914128] a = 1
4 
5 2016-07-08 20:47:02.316 static、copy和extern的基本使用[11489:914128] a = 1

  如果把int a = 0改为static int a = 0则结果为

1 2016-07-08 20:48:19.988 static、copy和extern的基本使用[11502:915143] a = 1
2 2016-07-08 20:48:19.988 static、copy和extern的基本使用[11502:915143] a = 2
3 2016-07-08 20:48:19.989 static、copy和extern的基本使用[11502:915143] a = 3

  2、修饰全局变量。作用域减小到当前文件夹,其它文件无法访问和修改

二、extern的作用:

  1、默认情况下所有文件的变量都可以访问,只需要在定义变量时添加一个extern(extern int age)(而且没有分配内存)引用一下就行,这个不管int age是定义在哪个文件中,都可以得到,而且此变量还可以被修改。

  2、extern引用的时候,优先找本文件夹,如果找不到再去其它文件夹。

转载于:https://www.cnblogs.com/hissia/p/5659119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值