C++ const关键字


基本用法

const用来声明一个常量,常量被初始化后它的值就固定了,不再允许修改:

const int Month = 12;

const与指针

const用于指针有三种形式:

  1. 让指针指向一个常量对象,防止指针修改所指向的值,例如:
int age = 39;
const int *pt = &age;//声明指向常量的指针

上面的代码声明了一个指向 const int 类型的变量,因此不能用pt来修改该值,即*pt的值为const,不能被修改。
不能使用pt来修改age的值,但是可以直接修改age的值,因为age是常规变量,没有const修饰:

*pt = 20; //错误
age = 20; //正确

对应const 修饰的变量来说只能赋值给“指向常量的指针”,不能赋值给常规指针:

const float g_earth = 9.8;
const float *pe = &g_earth; //正确

float *pt = &g_earth;//错误
  1. 声明指针本身为常量,防止改变指针所指向的位置 、
int sloth = 3;
int * const finger = &sloth;

上面的声明中finger只能指向sloth,但是可以使用finger修改sloth的值,finger是const而*finger不是const

  1. 声明指向const对象的const指针
double trouble = 2.0E30;
const double * const stick = &trouble;  

这段代码中 stick只能指向trouble,stick不能修改trouble的值,也就是说stick与*stick都为const


const与引用

引用是一个变量的别名,通过使用引用作为函数的形参可以使函数使用原始数据,引用更接近于const指针,一旦与某个变量关联起来将一直效忠于这个变量,也就是说:

int & rodents = rats;

实际上是下述代码的伪装表示:

int const * pr = &rats;

rodents 与 *pr起到相同的作用。
如果只希望函数使用传递给它的信息而不能修改信息,则需要使用常量引用:

double refcube(const double &ra);           

这样当编译器发现修改了ra的值时会生成错误信息。


const 写在函数体{}前

const 写在函数体{}前的作用与注意点如下:
作用: 表示这个函数只有读的操作,没有写操作,不允许函数改变成员变量的值
注意: const 放在函数体前需在类里面使用


原文链接: https://www.cnblogs.com/PythonFCG/p/13860043.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++ const关键字

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/332795

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午6:42
下一篇 2023年3月1日 下午6:42

相关推荐