C语言如何⽤ const 控制指针?

一、问题

使⽤ const 关键字可以定义⼀个符号常量,那么如何使⽤ const 来控制指针呢?

二、解答

在定义指针变量的时候,也可以通过 const 关键字来限制对指针变量的值的修改,或者是限制对指针变量所指向数据的修改。例如:

cpp 复制代码
const int *p

定义了⼀个指针变量,也可以写成如下形式。

cpp 复制代码
int const *p

上⾯语句控制 *p 的值不能修改,*p 的值是指指针变量所指向的变量,也就是不可以使⽤ *p 来对它所指向的数据进⾏修改,但是可以使⽤赋值等⽅式直接通过指向变量的变量名来修改指向变量的数值。

由上可知 const 控制的是 *p ,但是变量 p 没有被控制,所以也可以通过对 p 的修改, 让它指向其他地址,实现对数据的修改。

再看这样的语句。

cpp 复制代码
int *const p;

这⾥,关键字 const 控制的就是变量 p 了,所以变量 p 是不允许修改的,也就是指针 p 是⼀个指针常量,与数组名⼀样,⽽且在定义之初就要初始化,在以后的程序中将不能改变指针变量的指向。

三、总结

虽然语句 int * const p 中指针变量的值不允许修改,但其指向的变量的值是允许修改的。

相关推荐
编程大师哥3 分钟前
JavaScript 和 Python 哪个更适合初学者?
开发语言·javascript·python
建军啊13 分钟前
php伪协议、代码审计工具和实战
开发语言·php
17(无规则自律)18 分钟前
【CSAPP 读书笔记】第一章:计算机系统漫游
linux·c语言·arm开发·嵌入式硬件·学习·ubuntu
WYH28718 分钟前
为什么在cubeide里勾选了can1,生成的工程里没有can.c?
c语言·开发语言
曾浩轩20 分钟前
C语言学习记录——BC113 数字三角形
c语言·学习
21 分钟前
java关于键盘录入
java·开发语言
马猴烧酒.23 分钟前
JAVA后端对象存储( 图片分享平台)详解
java·开发语言·spring·腾讯云
wearegogog12333 分钟前
基于MATLAB的D2D仿真场景实现
开发语言·网络·matlab
froginwe1135 分钟前
Chart.js 散点图详解
开发语言
独自破碎E37 分钟前
【纵向扫描】最长公共前缀
java·开发语言