根據筆者的歸納,主要有以下三點:

(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++允許