C++ 关于引用的思考

依稀记得教材中这样解释引用

1、引用是对象的别名
2、引用不是值,不占用内存空间
3、引用在定义时赋值,不将变量与引用绑定,不允许修改

产生疑问引用不占内存空间?难道凭空出现的?任何东西存在就一定有占位,否则这东西放哪呢?引用不允许修改?编译器是不是对其增加了类似const的修饰?

经过一系列验证,得出引用本质如下

1、引用是通过指针实现的
2、引用是一个常指针
3、引用占4个字节,指针大小
4、定义引用时,需要初始化指针

引用作为函数参数需要加const吗?

如果将引用作为函数参数时,是能够在函数内改变该对象的值的,就同指针修改内存空间中的数据一样。如果要保证只是访问此对象,不涉及修改的情况,需要加const,编译器会保护对象,只允许作为右值读,不允许写。否则会编译错误。

引用一定安全吗?(不允许修改引用的值)

相对指针安全,因为常指针不允许修改,但也仅仅从编译器层面保证,如果修改编译器在编译时会报错,是不能通过编译步骤的。但是如果通过其他手段,仍然可以在内存中恶意修改任何值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值