const限定修饰符

const 类型限定修饰符把一个对象转换成一个常量,常量定义以后在程序中任何改变这个值的企图都将导致编译错误。

请注意下面的代码:

const double minWage = 9.60;

double *ptr = &minWage;

一般编译器不能跟踪指针在程序中任意一点指向的对象,但任何“试图将一个非const 对象的指针指向一个常量对象”的动作都将引起编译错误或警告。

 

另外,这里给出三种和const相关的指针,看起来类似,容易犯晕:

(1)const int *pc;

pc是指向被定义成const的int类型对象的指针。pc本身不是常量,可以重新赋值,使其指向不同的对象,但不能修改pc指向的对象,如:

                   const int *pc  = 0;

                   const int min = 100;

                   pc = &min;                 //OK

                   int temp = 20;

                   pc = &temp;              //OK

                   *pc = 50;                   //Error

 

(2)int *const pc;

pc是指向int类型对象的const指针。这意味着不能赋给pc其他的地址值,但可以修改pc指向的值。

                   int min = 100;

                   int temp = 20;

                   int *const pc =&min

                   *pc = 50;                   //OK

                   pc = &temp;              //Error

 

(3)const int *const pc;

pc是一个指向被定义为const的int类型对象的const指针,这样即不能赋给pc其他的地址值,也不能修改pc指向的对象。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值