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

  • 相关阅读:
    Java8新特性
    搜索解决方案 -- ElasticSearch入门
    插入排序
    单点登录系统CAS入门
    快速排序
    选择性排序
    冒泡排序
    springcloud入门
    消息中间件 -- RabbitMQ
    ActiveMQ中消息的重发与持久化保存
  • 原文地址:https://www.cnblogs.com/hissia/p/5659119.html
Copyright © 2011-2022 走看看