首先,C里面的const是个变量,C++里面是个常量
然后C++里面,全局const存放在常量区,局部const存放在栈区,不算真正的常量,你这里的就是一个局部const
由于C++里面,在运行之前,程序把a出现的地方都替换为了3,所以a已经变成了5,但是cout出来仍然是3
如果你把a定义到main函数外面,声明为全局const常量,程序运行会出错
在C中由const修饰的是只读变量,而在C++中是const修饰的当作常量对待的。例如,在C中,const int N=8;int a[8];是非法的(定义数组时[]中不能用变量),而在C++中却可以通过编译。