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

embedded/2024/10/19 13:25:24/

一、问题

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

二、解答        

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

const int *p

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

int const *p

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

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

        再看这样的语句。

int *const p;

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

三、总结

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


http://www.ppmy.cn/embedded/28546.html

相关文章

237基于matlab的偏振态仿真

基于matlab的偏振态仿真,不同偏振态下光强计算。本仿真软件可以仿真波片对偏振光的相位调制过程。用户可以通过改变波片的类型,波片长轴与 X 轴的夹角,起偏器透光与 X 轴的夹角,检偏器透光轴与 X 轴的夹角等参数,来观察…

R语言 统计篇之T-test 检验

《Cookbook for R》 Statistical Analysis 数据统计篇之 T-test 检验 当你想测试两个样本是否来自均值不同的群体 或者测试一个样本是否来自均值不同于某个理论均值的群体。 示例数据:R内置数据集 sleep sleep #> extra group ID #> 1 0.7 1 1 #…

【随想录】Day36—第八章 贪心算法 part05

目录 题目1: 无重叠区间1- 思路2- 题解⭐ 无重叠区间——题解思路 题目2: 763. 划分字母区间1- 思路2- 题解⭐ 划分字母区间——题解思路 题目3: 56. 合并区间1- 思路2- 题解⭐ 合并区间——题解思路 题目1: 无重叠区间 题目链接:435. 无重叠区间 1- 思路 贪心思路…

Linux CPU 飙升 排查五步法

排查思路-五步法 1. top命令定位应用进程pid 找到最耗时的CPU的进程pid top2. top-Hp[pid]定位应用进程对应的线程tid 找到最消耗CPU的线程ID // 执行 top -Hp [pid] 定位应用进程对应的线程 tid // 按shift p 组合键,按照CPU占用率排序 > top -Hp 111683.…

用FPGA+DAC输出“心”形波

1.前言 之前在做信号处理的时候整了一下活,用FPGADAC(数模转换器),输出了一个爱心形状的波形,今天整理资料的时候偶然发现了他,现在把他分享出来。当时将DAC的输出接在示波器上显示如下图所示: …

【Spring AI】02. 嵌入向量 API

文章目录 嵌入向量 APIAPI 概述EmbeddingClientEmbeddingRequestEmbeddingResponseEmbedding 可用实现 嵌入向量 API EmbeddingClient 接口旨在与人工智能和机器学习中的嵌入向量模型进行直接集成。其主要功能是将文本转换为数字向量,通常称为嵌入向量。这些嵌入向…

抖音视频怎么无水印下载(方法)

在这个数字化时代,抖音已经成为了人们生活中不可或缺的一部分。每天,数以亿计的用户在这个平台上分享着各种各样的视频,让人们笑,让人们感动,让人们沉迷。你是否曾经遇到过想要保存一段精彩的抖音视频却苦于无法去掉水…

GZIPOutputStream JSON压缩

一、背景 小王瞥了一眼历史记录表,不禁惊呼:“这表怎么这么大?”同事们闻声纷纷围拢过来查看。仔细一瞧,发现这个表的大小竟然超过了3G。主管随即指示小王打开相应的表数据检查,发现其中存储了用户的权限信息&#xf…