const 与#define 的比较
C++ 语言可以用 const 来定义常量,也可以用 #define 来定义常量。但是前者比后 者有更多的优点:
(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安 全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会 产生意料不到的错误(边际效应)。
(2) 有些集成化的调试工具可以对 const常量进行调试,但是不能对宏常量进行调试。
1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 using namespace std; 5 int main(int argc, char** argv) { 6 7 int a,b; 8 //输入数据 9 cout<<"a="; 10 cin>>a; 11 cout<<"b="; 12 cin>>b; 13 14 //除法判断 15 if (b!=0 && a%b==0) { 16 cout<<b<<" divides "<<a<<endl; 17 cout<<"a/b="<<a/b<<endl; 18 } 19 else 20 cout<<b<<" does not divide "<<a<<endl; 21 return 0; 22 }