>[info]# 用const定义常变量
在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constant variable).
如 const int pi=3.1415926;
常量在定义时必须初始化,常量名不能放在赋值号的左边.
可以用常量表达式对常量进行初始化.
## **符号常量(#define)与const常量的区别**
1. #define宏是在预处理阶段展开。
const常量是编译运行阶段使用。
2. #define宏没有类型,不做任何类型检查,仅仅是展开。
const常量有具体的类型,在编译阶段会执行类型检查。
3. #define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存(宏定义不分配内存,**变量定义**分配内存。)
const常量会在内存中分配(可以是堆中也可以是栈中)。
4. const常量可以进行调试的
#define是不能进行调试的,因为在预编译阶段就已经替换掉了
5. const不足的地方,是与生俱来的,const不能重定义
#define可以通过#undef取消某个符号的定义,再重新定义。
- 介绍
- 编程设计语言
- 第一章 对C++的初步认识
- 1.2 最简单的C++程序
- 1.3 C++对C的补充
- 1.3.1 return
- 1.3.2 输入输出流
- 1.3.3 putchar 和 getchar
- 1.3.4 用const定义常变量
- 1.3.5 函数原型声明
- 1.3.6 内置函数
- 1.3.7 函数重载
- 1.3.8 函数模板
- 1.3.9 有默认值的参数
- 1.3.10 作用域
- 1.3.11 const修饰指针
- 1.3.12 引用
- 1.3.13 生命期
- 1.3.14 变量
- 1.3.15 字符串变量
- 第二章 类与对象
- 2.2 类的声明和对象的定义
- 2.3 类的成员函数
- 第三章 关于类和对象的进一步讨论
- 3.1 构造函数
- 3.1.1 对象的初始化
- 3.1.2 构造函数
- 3.2 析构函数
- 3.3调用析构函数和构造函数的顺序
- 3.4 对象数组
- 3.5 对象指针
- 3.6 共享数据的保护
- 3.7 对象的建立与释放
- 3.8 对象的赋值与复制
- 3.9 静态成员
- 3.10 友元
- 3.11 类模板
- 第四章 运算符重载
- 数据类型转换
- 运算符重载
- 重载流插入运算符和流提取运算符
- 第五章 继承与派生
- 继承与派生
- 第六章 多态性与虚函数
- 多态性
- 虚函数
- 纯虚函数与抽象类