C++的const限定符对引用和指针的作用

来源:互联网 发布:淘宝新店刷信誉怎么刷 编辑:程序博客网 时间:2024/05/17 23:23

const限定符表示定义的变量是个常量,不允许修改,但是const限定符和引用和指针结合起来的时候就变得稍微复杂点了。


1、const限定符和引用的结合

首先引用本身初始化之后不允许修改所绑定的对象,但是可以通过引用来修改绑定的对象,但是和const结合之后,就不可以修改绑定的对象了。

比如:

int b = 1;

int &a = b;

可以通过修改a来修改b。

int b = 1;

const & a = b;

这样定义之后,不允许通过a来修改b的值,但是b本身不是一个常量,可以通过其他方式来修改b的值。


2、const限定符和指针的结合

const和指针的结合情况更多一点,有三种情况。

(1)

int a = 0;

int * const p = &a;

这种情况表示p是一个常量指针,不可以修改p指向的对象。

(2)

const a = 0;

const int *p = &a;

这种情况表示可以改变p指向的对象,但是对象的内容不可以改变,就是指针指向的是一个常量。

(3)

const a = 0;

const int *const p = &a;

这种情况表示p本身是一个常量指针,不可以修改指向的对象,同时,对象也是一个常量。


在遇到复杂的表达式时,需要从右向左去阅读,离变量最近的表示变量的属性。 

原创粉丝点击