本文根据的是msvc程序运行的结果,代码如下
#include <iostream>const static int a = 99;int ab = 11;class MyClass
{
public:MyClass();~MyClass();const int a;private:};MyClass::MyClass():a(9)
{
}void me()
{int a = 1;std::cout << &a << std::endl;
}int main()
{const int gg = 1;MyClass mc;MyClass mc1;std::cout << &gg << std::endl;std::cout << &a << std::endl;std::cout << &ab << std::endl;std::cout << &(mc.a) << std::endl;std::cout << &(mc1.a) << std::endl;me();std::cout << "Hello World!\n";
}
运行结果来看,const只是起到一个常量的修饰作用,并没有改变变量的作用域。
const 与复合类型
修饰的是底层const。const &修饰的是引用变量是个const。因为可以用non-const变量给const变量赋值。