📜  在C和C++中将变量声明为常量的不同方法

📅  最后修改于: 2021-05-25 22:00:04             🧑  作者: Mango

有很多不同的方法可以使变量为常数

  1. 使用const关键字: const关键字指定变量或对象值是常量,并且不能在编译时进行修改。
    // C program to demonstrate const specifier
    #include 
    int main()
    {
        const int num = 1;
      
        num = 5; // Modifying the value
        return 0;
    }
    
    It will throw as error like:
    error: assignment of read-only variable ‘num’
    
  2. 使用enum关键字: Enumeration(或enum)是C和C++中用户定义的数据类型。它主要用于为整数常量分配名称,使程序易于阅读和维护。
    // In C and C++ internally the default
    // type of 'var' is int
    enum VARS { var = 42 };
      
    // In C++ 11 (can have any integral type):
    enum : type { var = 42; }
      
    // where mytype = int, char, long etc.
    // but it can't be float, double or
    // user defined data type.
    

    注意:如上例所示,枚举的数据类型当然是有限的。

  3. 使用constexpr关键字:在C++中使用constexpr(不在C中)可用于将变量声明为保证的常量。但是,如果其初始值设定项不是常量表达式,则它将无法编译。
    #include 
      
    int main()
    {
        int var = 5;
        constexpr int k = var;
        std::cout << k;
        return 0;
    }
    

    上面的程序会抛出错误,即

    error: the value of ‘var’ is not usable in a constant expression

    因为变量’var’不是常数表达式。因此,为了使其恒定,我们必须使用const关键字声明变量“ var”。

  4. 使用宏:我们也可以使用宏来定义常量,但是有一个陷阱,
    #define var 5