• 十八: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引用的时候,优先找本文件夹,如果找不到再去其它文件夹。

  • 相关阅读:
    第15周作业
    迟到的第14周作业
    第13周作业集
    第11次作业--字符串处理
    找回感觉的练习
    第9次作业--接口及接口回调
    20194684 + 自动生成四则运算题第一版报告
    css的calc在less文件中计算有误问题
    react 细节整理
    js async属性
  • 原文地址:https://www.cnblogs.com/hissia/p/5659119.html
Copyright © 2020-2023  润新知