欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

#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;
}

编译结果
#define和const区别
这时候 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
但是 事实却是
#define和const区别
可见 这与我们的本意有出入
因为当我们执行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;

}

#define和const区别

此时的A1,A2均是有类型,有地址,占储存单元的,可以用指针指向,但是被固定了,不可以改变他的值,因此此时我们的代码就实现了。

相关标签: c++