面试题15:请指出const与#define相比有何优点

    答:const的作用为定义常量、修饰函数参数及修饰函数返回值3个作用。被const修饰的内容都会受到强制保护,可以预防意外的变动,能提高程序的安全性。

    (1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会出现意料不到的错误。

    (2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。