首先我们先看一个例子:
#include <iostream>
#include <assert.h>
using namespace std;
struct S{
const int c; //常量普通成员变量
static const int sc; //常量静态成员变量
S():c(0){
}
};
const int S::sc = 0;
const int gc = 0; //常量全局变量
static const int gsc = 0; //常量静态全局变量
int main()
{
const int lc = 0; //常量局部变量
static const int lsc = 0; //常量静态局部变量
const S ls; //局部常量结构体
int *p;
p = (int *)(&ls.c);
//p = (int *)(&ls.sc);
//p = (int *)(&gc);
//p = (int *)(&gsc);
//p = (int *)(&lc);
//p = (int *)(&lsc);
*p += 10;
cout << *p << "\t" << ls.c << endl; // 10 10 - (1)
//cout << *p << "\t" << ls.sc << endl; // 段错误 - (2)
//cout <&