C++ const详解
常量在C++中经常用到,用关键字 const 表示,它是常数变量,也就是说,它仍然是 变量 ,而不是 常数 。什么区别呢?编译器会为变量在内存中分配地址空间,而常数是编译器在编译过程中记录在内存表里一个实体。 常量定义 const int a = 10 ; 在定义完之后,就不能再修改常量 a 的值了。如果是在不同的文件中使用,需要用到关键字 extern extern const int a ; 这样表示变量 a 是一个定义别处的全局变量,在这里只能使用,并不能修改,但 a 并不一定真的是一个 const 。 指针常量 和 常量指针 这应该是C++面试和笔试中经常考到的一个知识点。 指针常量 int * const q = 10 ; // q is const *q = 20 ; // OK q++; // ERROR 指针常量,在上面的代码中,q是常量,指向的地址是不能变化的,但指向地址中的内容是可以改变的。 常量指针 int a = 10 ; int b = 20 ; const int *p = &a; // *p is const *p = 15 ; // ERROR a = 30 ; // OK p = &b; // OK 常量指针,在上面的例子中,( p)是常量,我们不能通过( p)来改变指向的对象即a;但a本身是可以改变的,而且p也是可以指向别处的。