在C++中,const变量(即常量)值放在编译器的符号表中,计算时编译器直接从表中取值,而不是访问内存,省去了访问内存的时间,这也就是所谓的编译器优化。
下面的代码可以很清晰的看出:
main.cpp
#include <iostream>
using namespace std;
int main(int argc,char** argv)
{
/*volatile*/ const int i = 0;
int *j = (int *) &i;
*j = 1;
cout<<"i:"<<i<<endl;
cout<<"*j:"<<*j<<endl;
cout<<"&i:"<<&i<<endl;