0
点赞
收藏
分享

微信扫一扫

C++中的常量

扒皮狼 2022-03-11 阅读 24
c++

文章目录

1. 字面量

int Num = 0;
cout<<"ERROR"<<endl;

定义的变量Num,初始化赋值位0。这个0是代码的一部分,在编译过程中,只要后面的代码不对其进行修改,则其值是不会进行改变的,就相当于一个不变量。也就是字面量,下面的“ERROR”字符串也是字面量

2. const修饰

const double Pi = 22.0/7;
double Area = 2 * Pi * 2;
//Pi = 3.14 ERROR

使用cosnt时,只能在声明时初始化。但是一经定义就不允许修改,这就是const修饰的常量。
要养成使用const的习惯,当意识到某个变量在使用过程中是不变量时,要有意识的将其声明位const,这有利于其他程序员理解程序。

3. constexpr修饰

constexpr double Pi(){ return 22.0 / 7; }
constexpr double Area(){ return 2 * Pi(); }

constexpr修饰的函数是在编译时就进行运算的。
有利于减少应用程序的运行时间:在c++11时,使用constexpr时在编译时就进行运算,而上面代码第二行如果使用const来修饰,则会在运行时才进行计算。
在c++11之前不支持在编译期间就进行运算的函数,使用了constexpr可以提升优化应用程序的可能性。

4. enum修饰

enum Rainbow
{
    red = 0,
    blue,
    orange,
    yellow,
    indigo,
    violet
};
enum Pi
{
	PI = 3.14
};
int main()
{
	cout<<blue<<endl;
	Rainbow r1 = orange;
	cout<<r1<<endl;
	cout<< 2 * PI<<endl;
}

枚举常量值,定义一个枚举常量可以在其中选择,可以将其每个常量都进行赋值。也可以指赋值一个,后面的每一个都会比前一个多一,也可以都不进行赋值,默认第一个位0;

5. #define

#define PI 3.14

使用宏定义的形式来进行常量赋值,当遇到PI时将其转换为后面的PI。
但是不推荐使用该方法,甚至都已经被摒弃,因为当进行转换的时候不会进行类型检查,这会导致出现大错误

举报

相关推荐

0 条评论