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

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

  • 相关阅读:
    客户端组建调用
    串口开发
    C/C++,系统知识考点
    API进程线程函数
    做WEB2.0网站可以参考的十九条规则
    javascript中动态添加事件!!
    常用正则表达式收集!
    CuteChat for Community Server 2.0 beta 3!
    发现一个下载.Text Skin 的好网站.
    如何控制Linux终端打印字符颜色和位置
  • 原文地址:https://www.cnblogs.com/XXxiaotaiyang/p/5041552.html
Copyright © 2011-2022 走看看