C++编程中鼓励用const来进行常量的定义不鼓励使用宏,但是在底层编程中用宏很方便。在这里总结了一点关于const的一些研究。
const会进行类型检查,而宏只是简单的替换。
const的作用域是该变量的作用域范围。
const在编译的时候分配内存。
宏是在预处理的时候进行替换。
const 定义的方法:
const datatype constname = constvalue;
datatype const constname = constvalue;
const常量必须初始化。
const常量一旦初始化就不能被赋值。
- # include <iostream>
- using namespace std;
- // const 数据类型 常量名 = 常量值
- // 数据类型 const 常量名 = 常量值
- int main(void)
- {
- //const常量必须在定义的时候进行初始化
- const int a = 100;
- cout << "a = " << a << endl;
- //cont int b; error ,没有初始化
- //常量不能被赋值
- //a = 200; error
- // const在*的左边
- int b = 22;
- const int *p1;
- //*p1 = b; *p1是常量不能被赋值
- p1 = &b;
- cout << "*p1 = " << *p1 << endl;
- //const 在*的右边
- int c = 230;
- int d = 330;
- int * const p2 = &c; //此处p2是常量,必须初始化
- //p2 = &d; error p2是常量无法赋值
- cout <<"*p2 = " << *p2 << endl;
- *p2 = d;//right,因为*p2不是常量
- cout <<"*p2 = " << *p2 << endl;
- return 0;
- }
输出结果: