C++编程中鼓励用const来进行常量的定义不鼓励使用宏,但是在底层编程中用宏很方便。在这里总结了一点关于const的一些研究。

    const会进行类型检查,而宏只是简单的替换。

    const的作用域是该变量的作用域范围。

    const在编译的时候分配内存。

    宏是在预处理的时候进行替换。

    const 定义的方法:

    const    datatype   constname = constvalue;

    datatype    const   constname = constvalue;

    const常量必须初始化。

    const常量一旦初始化就不能被赋值。

  1. # include <iostream> 
  2. using namespace std; 
  3.  
  4.  
  5. // const 数据类型   常量名 = 常量值 
  6. // 数据类型 const   常量名 = 常量值 
  7. int main(void
  8.     //const常量必须在定义的时候进行初始化 
  9.     const int a = 100; 
  10.     cout << "a = " << a << endl; 
  11.     //cont int b; error ,没有初始化 
  12.     //常量不能被赋值 
  13.     //a = 200; error 
  14.  
  15.     // const在*的左边 
  16.     int b = 22; 
  17.     const int *p1; 
  18.     //*p1 = b;   *p1是常量不能被赋值  
  19.     p1 = &b; 
  20.     cout << "*p1 = " << *p1 << endl; 
  21.  
  22.     //const 在*的右边 
  23.     int c = 230; 
  24.     int d = 330; 
  25.     int * const p2 = &c;  //此处p2是常量,必须初始化 
  26.     //p2 = &d;  error p2是常量无法赋值 
  27.     cout <<"*p2 = " << *p2 << endl; 
  28.     *p2 = d;//right,因为*p2不是常量 
  29.     cout <<"*p2 = " << *p2 << endl; 
  30.  
  31.  
  32.     return 0; 

 输出结果:

 

关于C++的const限定符的学习_宏