编译器通常不为普通const只读变量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值
1. const定义的只读变量在程序运行过程中只有一份备份(因为它是全局的只读变量,存放在静态区);#define定义的宏常量在内
存中有若干个备份
2. #define宏是在预编译阶段进行替换,而const修饰的只读变量是在编译的时候确定其值
3. #define宏没有类型,而const修饰的只读变量具有特定的类型
const修饰的不是常量而是readonly的变量,const修饰的只读变量不能用作为定义数组的维数,也不能放在case关键字后面