C++有两种第一常量方式:#define const;
两种方式区别:1.宏定义是字符替换,没有类型检查。const会在编译阶段进行类型检查。
2.宏定义是一个"编译时"概念,在预处理阶段展开,不能对宏定义进行调试,生命周期结束与编译时期;const常量是一个"运行时"概念,在程序运行使用,类似于一个只读行数据;
3.宏定义不分配内存,const分配内存空间。
4.定义域不同,宏定义不受定义域限制。
5.是否可做函数参数,宏定义不能做函数参数。
const与基本数据类型:
const int x=3; x不可以更改。
const与指针类型:
const int *p=NULL; int const *p=NULL; *p不可以更改。
int *const p=NULL; p 不可更改。
const int x=3; const int *const p=&x; 内容和地址都不能更改。
const与引用
int x=3;
const int &z=x; z 不能更改,x可以更改。
网友评论