struct Teacher { char name[64]; int age; } int operatorTeacher(const Teacher *pT) //指针所指向内存空间不能被改写 { pT->age = 10; //错误,不被允许 return 0; }
int operatorTeacher01(Teacher *const pT) //指针不能被改写
{
pT->age = 10;
pT = NULL; //错误,pT不被允许修改
return 0;
}
const好处:合理利用const,1.指针做函数参数,可以优先的提高代码可读性,减少bug;2.清楚的分清参数的输入和输出特性。
C语言中const并不是一个常量;C++语言中const是一个真正的常量。
C++编译器对const常量的处理,当碰到常量声明时,在符号表中放入常量,编译过程中若发现使用常量则直接以符号表中的值替换。发现const使用了extern或者&操作,给对应常量分配空间,兼容C。
C语言 | C++语言 |
C语言中const变量是只读变量,有自己的存储空间 |
可能分配空间,也可能不分配存储空间; 当const常量为全局,并且需要在其它文件中使用; 当使用&操作符取const常量的地址。 |