2.4.2 const的引用、指针和const

本文详细探讨了C++编程中的const引用和const指针的使用,包括它们的作用、规则及其在不同场景下的应用。通过练习2.27、2.28和2.29,读者将深入理解const在类型安全性中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
练习2.27

int i = -1, &r = 0;             // &r = 0不合法,引用类型的初始值必须是一个对象
int *const p2 = &i2;            //如果i2已被定义为int类型,合法
const int i = -1, &r = 0;       //合法,例外情况,在初始化常量引用时允许用任意表达式作为初始值,只要该表达式的结果能转化成引用的类型即可。
const int *const p3 = &i2;      //合法,如果i2已定义
const int *p1 = &i2;            //合法,如果i2已定义
const int &const r2;            //不合法,引用必须初始化
const int i2 = i, &r = i;       //合法,如果i已定义

练习2.28

int i, *const cp; //不合法,a constant pointer to an interger. 常量指针cp必须初始化
int *p1, *const p2; //不合法,a constant pointer to an interger. 常量指针p2必须初始化未初始化常量指针p2
const int ic, &r = ic; //不合法,a constant interger. ic必须初始化。
const int *const p3; //不合法,a constant pointer to a constant interger。常量指针p3必须初始化
const int *p; //合法,a pointer to a constant interger. pointer(指针)可以默认初始化

练习2.29

i = ic; //合法,i是int,ic是constant interger,i变量可以被重新赋值
p1 = p3; //不合法,p1是int型的指针,p3是一个常量指针,int型的指针不能存放常量指针的值。
p1 = ⁣ // 不合法,p1是int型的指针,ic是constant integer,要想存放常量对象的地址,只能使用指向常量的指针。
p3 = ⁣ //不合法,p3是常量,不可给常量赋值
p2 = p1; // 不合法,p1是int型的指针,p2是constant pointer, p2的值不可被改变
ic = *p3; //不合法,ic是constant interger,值不可以被改变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值