美文网首页
变量与常量

变量与常量

作者: XiaoChi | 来源:发表于2017-12-03 22:18 被阅读0次

    变量声明与定义

    • extrn type var_name_list: 声明,告诉解析器存在这么一个变量或者函数等
    • type var_name_list:分配存储空间,
      定义也是声明,声明不是定义

    变量类型

    基本类型、自定义类型

    变量作用域

    全局变量和局部变量的区别:

    • 定义位置:全局变量定义在函数或者代码块外部,在程序整个声明周期内有效;局部变量定义在函数或者代码块内部。
    • 作用范围:全局变量在整个程序中都有作用,但局部变量仅作用于函数内部。若函数内部的局部变量和某一全局变量重名,则局部变量的值覆盖(此作用范围内)全局变量的值,但是全局变量的值不变(在全局意义上)
    • 初始化:
      全局变量自动初始化,局部变量必须手动初始化。

    常量

    常量是固定值,可以理解为特殊的“变量”,在程序执行期间值不可改变。常量分为整数常量、浮点常量、布尔常量、字符常量、字符串常量。

    常量定义

    • define 预处理器

      define identifier value

    • const 关键字
      const type variable = value

    预处理器define和const的区别

    • 类型和安全检查不同: 宏定义是字符替换,没有数据类型的区别,因此替换时没有类型检查,可能产生边际效应等错误;const常量是用声明的方法创建,有类型区别,需要在编译阶段进行类型检查;
    • 编译器处理不同:宏定义是一个编译时概念,在预处理阶段展开,不能对宏定义进行调试,在编译时生命周期结束;const是一个运行时概念,在程序运行中使用;
    • 存储方式不同:宏定义直接替换,不分配内存,存储在代码段中;const分配内存,存储在程序的数据段中。
    • 定义域不同:宏定义不受定义域限制,而const有定义域
    • 定义后能够取消:宏定义可以使用#undef取消,const在定义域内永久有效。
    • 是否可以作为函数参数:宏定义不能出现在参数中,const常量可以作为参数。

    相关文章

      网友评论

          本文标题:变量与常量

          本文链接:https://www.haomeiwen.com/subject/fxszbxtx.html