const的使用

 
#include<stdio>
const修饰的数据类型是指常类型,常类型的变量的值是不能更改的;也就是只读变量。

A、数据类型对于const是透明的。

int const a = 100;
const int b = 100;

上边的两个式子是等价的。

B、const用于封锁直接修饰的内容将该内容变为只读。

(1)const修饰*cp1,所以*cp1不能再作为左值,变为只读变量

const int *cp1 = &a;
           cp1 = &b;  //正确
          *cp1 = 200; //error

可以修改指针指向的位置,但不能修改指针一开始指向位置内保存的值。

(2)const修饰cp1,所以cp1不能再作为左值,变为只读变量

const int *cp1 = &a;
           cp1 = &b;  //error
          *cp1 = 200; //正确

不可以修改指针指向的位置,但可以修改指针指向位置内保存的值

(3)const修饰cp1,然后const修饰*const  cp1

 int const *const cp1 = &a;
                  cp1 = &b;  //error
                 *cp1 = 200; //error

不可以修改指针指向的位置,也不可以修改指针指向位置内保存的值

C、权限只能同等传递或者缩小传递,不能放大

int a = 100;
int b = 200;
const int ca = 10;
const int cb = 20;
int *p = &a;
const int *cp = &a;
int *const cp1 = &a;
int *const cp2 = &ca;\\error
const int *const cp3 = &a;
const int *const cp4 = &ca;
int *const cp2 = &ca;
这个式子就是很明显的给了别人超出自己的权限;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值