美文网首页
Symbolic constant vs Constant va

Symbolic constant vs Constant va

作者: 成江 | 来源:发表于2017-12-25 05:20 被阅读15次

    Symbolic constant, 符号常量

    注意:

    符号常量虽然有名字,但它不是变量。它的值不能被改变,也不能被赋值。

    其好处有二:

    • 含义清楚,知名见意。
    • 需要改变一个常量时能做到一改全改。

    在程序编译时,先对预处理命令进行处理,把程序中凡有 PRICE的地方全部替换成30.

    #define PRICE 30
    int main() {
      int num = 10;
      int total = num * PRICE;
      cout << "Total = " << total << endl;
      return 0;
    }
    

    Note: There's no precompiler in Java.

    You could achieve the same thing as follows:

    
    class MyClass
    {
        private static final int PROTEINS = 0;
    
        ...
    
        MyArray[] foo = new MyArray[PROTEINS];
    
    }
    

    Constant variable, 常变量

    在定义变量时,加上关键字 const,变量的值在程序运行期间不能改变,称为常变量。

    const int a = 3; // 指定其值永远为3
    

    在定义常变量时必须同时对它初始化,此后它的值不能再改变。
    常变量是基于应用需要的角度提出的,例如有时要求某些变量的值不允许改变,如函数的参数,这时就用 const 加以限定。

    #define 命令定义的符号常量和用 const 定义的常变量的区别

    符号常量只是用一个符号代替一个字符串,在编译时把所有的符号常量替换为指定的字符串,它没有类型,在内存中不存在以符号常量命名的存储单元。而常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可用 sizeof 运算符测出其长度。
    用#define 命令定义符号常量是 C 语言所采用的方法,C++把它保留下来是为了兼容。C++的程序员一般喜欢用 const 定义常变量。

    相关文章

      网友评论

          本文标题:Symbolic constant vs Constant va

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