C++常量const与define的区别

C++中常量const不占用内存空间.

const 存在就近原则

const int *p; const在这里靠近*,p中内容不能改。

int * const p; const 在这里靠近p,所以p所指位置不能变化。

const int * const p;无论是所指内容还是位置都不能被改变。

/*#include<iostream>
using namespace std;
int main ()
{
    const int a=1;        //a 为常量,存在于符号表里面,不占用内存空间。
    int *p=(int *)&a;     //a取地址,会将1存储在四个字节的空间内。
    *p=3;
    cout<<*p<<" "<<a<<endl;  //a 是常量,用1 来替换。
    return 0;
}*/


//const 和 define 的区别 ,作用域不同。const 局部。define的作用范围从定义处往下。
#include<iostream>
using namespace std;
void print()
{
    const int a=1;
    #define b 1
    cout << a << " " << b <<endl;
}
int main()
{
    print();
    //cout << a << endl;   
    cout << b << endl;
    return 0;
}
 

猜你喜欢

转载自blog.csdn.net/tmh_15195862719/article/details/81120708