#include <iostream> using namespace std; int main(void) { const int a = 10; int * p = (int *)(&a); *p = 20; cout<<"a = "<<a<<", *p = "<<*p<<endl; return 0; }
#include <iostream> void main() { int const a = 10; int *p = (int*)&a; *p = 20; cout<<"&a="<<&a<<endl; cout<<"p="<<p<<endl; cout<<"a="<<a<<endl; cout<<"*p="<<*p<<endl; }
这个"常量折叠"是 就是在编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表。可以算作一种编译优化。