#define和const区别
程序员文章站
2024-03-23 13:38:22
...
#define
#define 指的是替换
下面展示一些 内联代码片
。
#include<iostream>
using namespace std;
int main ()
{
#define pi 3.1415
double s;
int r=5;
s=pi*r*r;
cout<<"s="<<s<<endl;
}
编译结果
这时候 pi完全被3.1415替代,这时候pi不是变量,更没有类型,也不占储存单元,无法用指针指向,但是这样及其不安全比如,
下面展示一些 内联代码片
。
#include<iostream>
using namespace std;
int main ()
{
#define A1 5+4
#define A2 3+5
cout<<"A1 is "<<A1<<endl;
cout<<"A2 is "<<A2<<endl;
cout<<"A1-A2 is "<<A1-A2<<endl;
}
这段代码输出,按照我们的想法应该是
A1 is 9
A2 is 8
A1-A2 is 1
但是 事实却是
可见 这与我们的本意有出入
因为当我们执行A1-A2时,电脑理解为5+4-3+5了,这时候运算结果就是11了
同样#define也无法使用指针去操作,这时候const,就更方便了
const
const 是固定
下面展示一些 内联代码片
。
#include<iostream>
using namespace std;
int main ()
{
int const A1=5+4;
int const A2=3+5;
cout<<"A1 is "<<A1<<endl;
cout<<"A2 is "<<A2<<endl;
cout<<"A1-A2 is "<<A1-A2<<endl;
}
此时的A1,A2均是有类型,有地址,占储存单元的,可以用指针指向,但是被固定了,不可以改变他的值,因此此时我们的代码就实现了。
上一篇: Oracle set define 详解
下一篇: Hibernate从入门到精通