根据笔者的归纳,主要有以下三点:

(1)C++能够把已用常量赋值(必须是常量赋值而不是函数赋值等)的const变量看作编译期常数,而C没有这种功能。
const int BUFSIZE = 1024;    //必须是常量赋值
char buf[BUFSIZE];               //C++中允许

(2)C++默认const变量的链接性质是内部的,而C则默认是外部的。在C++中必须使用extern声明a,a才能在其他文件使用。
const int a = 0;                       //C++中不可以在其他文件中使用,C可以
extern const int a = 0;            //C++中可以在其他文件中使用

(3)C只能允许常量初始化const外部变量,但是C++中没有限制,如:
int f(void);
const int a = f();                     //C++允许