const基础const符号表机制&&const和#define的对比
1、const基础知识(用法、含义、好处)
创新互联专注于企业成都营销网站建设、网站重做改版、蓝山网站定制设计、自适应品牌网站建设、H5开发、商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为蓝山等各大城市提供网站开发制作服务。
⑴初级理解:const是定义常量==》意味着只读
#includestruct Teacher { char name[64]; int age; } int operatorTeacher01(const Teacher *pT) { pT->age = 10;//这是错误的,原因:指针所指向的内存空间不可以被修改 return 0; } int operatorTeacher02(Teacher * const pT) { pT->age = 10;//这是正确的 pT = NULL;//这是错误的,原因:指针变量本身不能被修改 return 0; } int main() { const int a; int const a;// 第一个第二个意思一样 代表一个×××数 const int *c;//c 是一个指向常×××数的指针(所指向的内存不能被修改,但是本身可以修改) int * const d;// d 是常指针(指针变量不能被修改,但是它所指向的内存空间可以被修改) const int * const e;//一个指向常×××的常指针(指针和它所指向的内存空间均不能被修改) return 0; }
⑵好处:
合理的利用const:①指针做函数参数,可以有效的提高代码的可读性,减少bug
②清楚的分清参数的输入和输出特性
2.const的符号表机制
C++编译器对const常量的处理:
当碰见常量声明时,在符号表中放入常量;
编译过程中若发现使用常量则直接以符号表中的值替换;
编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存储空间(兼容C)
结论:C语言中的const常量:
C语言中的const变量是只读变量,有自己的存储空间
C++中的const常量:
可能分配空间,也可能不分配空间
分配内存空间的情况:
当const常量为全局,并且需要在其他文件中使用
当使用&操作符取const常量的地址
3、const与#define的不同之处
当前名称:const基础const符号表机制&&const和#define的对比
文章路径:http://hbruida.cn/article/gpoeed.html