无题
简介
在程序设计中,常量(constant)是一种在程序运行期间无法改变的值。
C++包含2种常量:
- Named constants(命名常量/符号常量):与标识符关联的常量值。
- Literal constants(字面常量/字面量):不与标识符关联的常量值。
命名常量
C++有3种定义命名常量的方式:
- 常量变量(首选)
- 宏
- 枚举常量
常量变量
初始化后不能改变值的变量,称为常量变量。
在许多情况下,定义一个常量是十分有用的。例如,定义圆周率的常量变量为3.14,定义地球重力为9.8等。
须知:类型限定符
限定符(全称为类型限定符)是应用于类型的关键字,用于修改该类型的行为方式。
用于声明常量变量的const,被称为const类型限定符(简称const限定符)。
从c++ 23开始,c++只有两个类型限定符:const和volatile。
声明const变量
在变量的数据类型旁边加上const
关键字(const限定符),即可声明一个常量变量。
通常建议将const写在数据类型前面,更符合语序。
注意事项:
①. const变量必须在定义时初始化,不能通过赋值改变值。
②. const变量可以使用非常数值来初始化。
1 | const double gravity = 9.8; // ① |
const作为函数参数
函数形参可以通过const关键字成为常量。
1 |
|
但通常,我们不会将函数的值形参设为const,因为值形参只是一个拷贝,无论如何都会在函数结束时被销毁,所以无需关心函数是否改变了值形参的值。
因此,不建议使用const作为值形参。
const作为函数返回值
函数的返回值可以是const;
- 对于基本类型,返回类型的const限定符会被忽略。
- 对于复合类型,按值返回const对象是个临时副本,无论如何都会被销毁,反而会阻碍编译器优化,导致性能降低。因此,按值返回时不建议使用const。
1
2
3
4
5
6
7
8
9
10
11
12
const int getAge()
{
return 22;
}
int main()
{
std::cout << getAge();
return 0;
}
在多个文件中使用常量变量
在程序中,定义的命名常量通常需要在多个文件中被使用。
为了避免重复定义,可以在中心位置声明一次,而后在需要的地方使用即可。
字面量
字面量(字面常量,literal)是直接插入到代码中的值,它们的含义无法被重新定义。如5,3.14,true,’a’,’Hello World’等。
字面量类型
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kure's Blog!