编程基础知识 巩固(2022-03-17随机阅读记录)

1、const对指针的理解和应用

请问下列表达式哪些会被编译器禁止【多选】()

int a = 248, b = 4;

int const *c = 21;

const int *d = &a;

int *const e = &b;

int const * const f = &a;

A: *c = 32; B:*d = 43 C:e=&a D:f=0x321f

🙊 本题主要考点:“const对指针的理解和应用”

在解题前,让我们先了解了解const对指针的作用是什么❓

*1️⃣const如果在指针变量的 的左边【即 const int * a == int const * a】:
➡️表达的意思是: 对指针变量a 解引用的值是保持不变的
只有a里面存放的地址改变了,解引用出来的值才会变化

*2️⃣const如果在指针变量的 “ * ” 的右边【即 int * const a】
➡️ 表达的意思是: a里面存放的地址是保持不变
只有主动对 a 赋值才能改变这个值,但a里面的地址是一直保持不变的

经过以上了解后,我们再看回题目:

如果 const 位于 * 的左侧,则 const 就是用来修饰指针所指向的变量,即指针指向为常量
所以上题中的:*c 和 *d 不能变

如果 const 位于 * 的右侧,则 const 就是修饰指针本身,即指针本身是常量
所以上题中的: e和f的地址不能被改变

综上:A选项想改变*c的值就错了,B选项同理;e和f的地址不能被改变,所以C选项和D选项都错啦~
————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值