const的用法

来源:互联网 发布:ubuntu 硬盘分区 编辑:程序博客网 时间:2024/06/07 18:22

const是C++中的一个关键字,用来限定一个变量不允许改变,当然在C语言中const的使用也同样适用。const修饰的变量可以是普通变量也可以是指针变量,下面我以整型指针(int *ptr)的const写法进行讲解。
对于一个整型指针我们对它有四种封锁方式:
(1) int *const ptr;
(2) const int *ptr;
(3) int const *ptr;(与2相同下面不再说明)
(4) const int * const ptr;
我们假设 ptr指向一个整数a;
ptr里存的是a的地址所以*ptr相当于是对a进行操作
第一种情况:我们封锁的是指针本身和封锁普通变量没有区别,即指针ptr里存的地址不能改变,不能再随意指向其他整型变量。
这里不能改变ptr的指向到变量b
第二种情况:我们封锁的是*ptr,*ptr是对a进行操作,即通过*ptr不能改变a的值。但如果a没有申明为const我们是可以通过a本身来改变自己的值。如果a申明为const则把a的地址交由ptr时我们也要通过const封锁*ptr,因为我们不能把常量赋给变量*ptr,这样意味着我们可以通过*ptr改变a的值和a本身是个常量冲突。
这里写图片描述
第四种情况:*ptr和ptr都用const封锁,即我们不能改变ptr的指向也不能通过*ptr改变a的值。

综上所述,我们对const的使用主要看const的位置,封锁ptr再不能改变ptr的指向,封锁*ptr则不能通过*ptr改变a的值。
新人上路,文章有错误之处还请多多指教。

0 0
原创粉丝点击