0
点赞
收藏
分享

微信扫一扫

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

吃面多放酱 2022-03-17 阅读 34
c语言

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选项都错啦~
————————————————

举报

相关推荐

2022-03-17剑指59-68

Dart之基础知识巩固

Spring基础知识03

js基础知识03

04 python基础知识 - 03

编程的基础知识

网络编程基础知识

(三)编程基础知识

0 条评论