本文根据的是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变量赋值。