const规则详解

总说const:

     c语言当中,关键字const是用来定义变量,加了const修饰的变量,它的值只能读,不能写。也就是说const修饰的变量是一个只读变量。在使用const 修饰变量时,它有以下的特点:

(1)数据类型对于const而言是透明的;

(2)const用于封锁直接修饰的内容,将该内容变为只读;

(3)权限只能同等传递或者缩小传递。

那么,这些特点的具体表现是什么呢?

第一:透明性

例如:

int const ac = 100;

const int bc = 100;

当const修饰指针变量时,例如:

int const *p1 = ∾

const int *p2 =&bc;

在这里,const放在数据类型符的前或者后它的意义都是一样的

第二:只读性


此外在const修饰指针变量除了上面讲的透明性中的两种还有一种是:

int  a = 10;

int  *const p ;

此时的p是一个指向int型的指针,被const修饰,声明时必须同时初始化,之后不能修改p的值。也就是说,const此时直接修饰的是p,p只能做为右值,不能作为左值进行操作。

第三:同等传限或缩小传限,不能放大传递


总结:const用来修饰指针时,当const放在数据类型的前后时,此时的指针变量不能解引用去改变有const修饰的普通变量。

int const ca = 20;

int const *cp = &ca;//正确

*cp = 10;//错误。

当const放在*后边时,此时的指针变量所指向的地址不能被修改。

int *const cp4 = &ca;//error

//该句const直接修饰cp4,cp4不能做左值,但可以对cp4解引用,可能修改ca的值,可ca不能写入,所以错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值