1)c++能够把(已用常量赋值的)const变量看作编译期常数,c没有这种功能
eg:const int BUFSIZE=1024;
char buf[BUFSIZE]; //ok in c++ but illegal in c
2)c++默认const变量的链接性质是内部的,而c则相反,默认是外部的
3)c只能允许用常量初始化const外部变量,c++没有这种限制
eg:int f(void);
const int a=f(); //ok in c++ but illegal in c
int main (void){}
详见《c/c++深层探索》