C语言中const修饰的指针

当用const进行修饰时,根据const位置的不同有三种不同效果。 判断的标准是:const修饰谁,谁的内容就是不可变的。

const修饰指针变量时候有三种情况:

1 const 修饰取值操作(修饰星号*)

int a = 10;
const int* p1 = &a;
const int *p2 = &a;
int const* p3 = &a;
int const *p4 = &a;

以上两种指针p1,p2,p3,p4的声明等价,当const在星号 * 前面,此时可以理解为const修饰的是星号和变量 (*p)(指针的取值操作),限定了指针p1-p4取值操作是只读的,不能修改,但是p1-p4指针变量是可以修改的。

*p1 = 100; //error 取值时是只读的,无法修改a的值
p1 = NULL; //不报错,指针的指向是可以更改的。

2 const 修饰指针变量

int* const p1 = &a;
int *const p2 = &a;

以上两种声明等价,当const在星号 * 和变量名之间,可以理解为const修饰的是指针变量p1,p2,即指针p1和p2的值(指向)不能修改,但是p1,p2的取值操作时候的值可以修改。 声明时必须初始化指针变量,一旦完成初始化就不能再指向其他地址。

*p1 = 100; //合法,此时a的值变为100
p1 = NULL; //error,指针变量的指向不能修改

3 两个const修饰

const int* const p1 = &a;

此时p1的指向不能修改,且p1的取值操作的值也不能修改

*p1 = 100; //error
p1 = NULL; //error
a = 100; //并不影响pi指向的a的值的修改

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/5986.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • CentOS7中安装Weblogic具体步骤

    WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发、集成、部署和管理…

    Linux系统 2025年6月8日
  • 如何使用Python实现多任务版的udp聊天器

    本篇文章将为大家分享一下如何使用Python实现多任务版的udp聊天器,结合具体案例形式分析了Python基于udp的聊天器功能相关实现与使用技巧,有需要的小伙伴可以参考一下。 一…

    Linux系统 2025年6月26日
  • HTML 元素使用实例

    HTML 文档是由 HTML 元素定义的。HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码,下面为大家详细讲解一下HTML 元素 HTML…

    Linux系统 2025年6月8日
  • PuTTY中更改字体颜色

    PuTTY是一款开源(Open Source Software)的连接软件,主要由Simon Tatham维护,使用MIT许可证授权。包含的组件有:PuTTY, PuTTYgen,…

    Linux系统 2025年6月9日
  • Linux grep命令详解:查找文件内容

    很多时候,我们并不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行,要实现这个目的,可以使用 grep 命令。 grep 命令作为 Linux 文本处理三剑客的一员,另…

    Linux系统 2025年10月11日
  • Linux rsyslogd服务及启动方法(详解版)

    在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd。Red Hat 公司认为 syslogd 已经不能满足工作中的需求,rsyslogd …

    Linux系统 2025年7月3日
  • 详解Python虚拟环境virtualenv

    VirtualEnv用于在一台机器上创建多个独立的python运行环境,VirtualEnvWrapper为前者提供了一些便利的命令行上的封装。 了解虚拟环境 如果在一台机器上,想…

    Linux系统 2025年6月19日
  • Linux中历史命令的具体使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,…

    Linux系统 2025年7月6日
  • Shell until循环用法详解

    unti 循环和 while 循环恰好相反,当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环。 until 的使用场景很少,一般使用 while 即可。 Shell un…

    Linux系统 2025年10月9日
  • Ansible基本架构与工作机制

    ansible是一种自动化运维工具,基于paramiko开发的,并且基于模块化工作,Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台。 一、Ansibl…

    Linux系统 2025年6月8日

发表回复

登录后才能评论