zoukankan      html  css  js  c++  java
  • const&static&extern

    const

    结论:

      如果const写在指针变量名的旁边, 那么指针的指向不能变, 而指向的内存空间的值可以变

          如果const写在数据类型的左边或者右边, 那么指针的指向可以改变, 但是指向的内存空间的值不能改变

    // 字符串常量,修饰account,既:account这个是常量不能改,但是他所指向的值 @"这个是可以改的",而且文档字符串常量都是这样的,颜色和宏的颜色也不一样。
    static NSString * const account = @"account";
    
    // 修饰指针指向的字符串,既:@"account1",是不能改的,可以用其他的指针指。
    static NSString const *account = @"account1";

    static

    // 全局变量:只有一份内存,所有文件共享,与extern联合使用。
    int a = 20;
    
    // static修饰全局变量
    static int age = 20;
    
    - (void)test
    {
        // static修饰局部变量
        static int age = 0;
        age++;
        NSLog(@"%d",age);
    }

    上诉两个statuc分别修饰了全局变量和局部变量,作用效果同

    结论:

      局部变量:1.延长局部变量的声明周期,程序结束时候才会销毁。

           2.局部变量只会生成一份内存,只会初始化一次。

                 3.改变局部变量的作用域。

      全局变量:1.只能在本文件访问,修改全局变量作用句,生命周期不变。

                     2.避免重复定义全局变量。

    extern

        获取全局变量(包括全局静态变量)的值,不能用于定义变量  

  • 相关阅读:
    SpringBoot-整合多数据源
    SpringBoot-整合@transactional注解
    SpringBoot-整合mybatis
    SpringBoot-区分不同环境配置文件
    SpringBoot-@value自定义参数
    SpringBoot-@async异步执行方法
    bias与variance,欠拟合与过拟合关系
    从贝叶斯到深度学习各个算法
    基础机器学习算法
    推荐算法总结
  • 原文地址:https://www.cnblogs.com/XXxiaotaiyang/p/5041552.html
Copyright © 2011-2022 走看看