const修饰详解

简介: const修饰详解

我们写出以下代码


int main()
{
  int num = 10;
  num = 20;
  printf("%d", num);
  return 0;
}


运行结果如下

49517c0e589644ceaea6d08a6c376756.png


我们发现num的值是可以被修改的


但是我现在不想要num的值被修改  我应该怎么做呢?


我们说 可以在num前面加上一个const修饰 这样它就具有了常属性


(关于常量的四种表示形式大家可以参考我的这篇博客常量的四种表示形式)


我们在修改试试


80388a54973847c1a849b7920363d5ed.png


我们会发现程序开始报错了 因为这个时候的num已经具有了常属性


那么有没有什么方法可以修改num的值呢? 答案是有的  


836a2fffa5b2450fb08ae1be04d3a902.png


我们使用一个指针来修改就可以了


那么在指针勉强能不能使用const修饰呢?


答案是可以 而且修饰的范围不同效果作用也不同  


1 当const放在  *  左边的时候


fb49098db0124e3280382d4ac6c2936e.png


就表示*p指向的内容不能修改


但是指针变量本身可以修改


如下图  


3c5ee09ec8554e24940d5a2abd8c84a1.png


但是还有一点要注意的是


竟然指针p指向了ret 但是它仍然不能修改ret的值


c2c9942762284fc88aad0c34270d70df.png



2. 当const放在  *  右边的时候


c94de0f5058a470187830a28325551bb.png


我们仍然可以使用解引用p来修改num的值


但是却不能让p指向其他的地址


这就是const放在*前后的区别


以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够


不吝赐教 在评论区或者私信指正 博主一定及时修正


那么大家下期再见咯


相关文章
|
分布式计算 监控 Hadoop
Hadoop任务执行失败
【7月更文挑战第12天】
574 10
|
存储 安全 网络安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
【9月更文挑战第28天】在数字化时代,云计算已成为企业和个人存储和处理数据的首选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将从云服务、网络安全、信息安全等方面探讨云计算与网络安全的关系,分析云计算环境下的网络安全挑战,并提出相应的应对策略。通过本文,您将了解到如何在享受云计算带来的便利的同时,保护您的数据安全。
|
程序员 Python
面向对象编程(OOP)在Python中的应用
【4月更文挑战第8天】面向对象编程(OOP)是使用对象设计软件的编程范式,Python支持OOP,提供类、对象、继承和多态等概念。类是创建对象的蓝图,包含属性和方法。通过`class`关键字定义类,如`Person`类,然后通过类创建对象。继承使子类继承父类属性和方法,如`Student`继承`Person`。多态允许不同类的对象通过相同接口操作,如`print_greeting`函数调用不同对象的`greet`方法。掌握这些概念能编写高效、可维护的Python代码。
103 0
|
XML Java Linux
Android学习笔记1
Android学习笔记1
116 0
|
搜索推荐 语音技术 数据安全/隐私保护
一种单输入框互联网账号登录界面,fffjjj.cn
互联网账号登录界面是所有互联网用户进入个人页面的门户,现有登录界面需要用户通过两扇门(账号密码两个输入框)才能完成账号登录,本专利可以让用户只需通过一扇门就可以完成个人账号登录(账号密码合并填写在一个输入框)。包含用户名和密码两个输入框的登录方法作为经典陪伴我们近50年。有一天,我们突然发现,如果把用户名(29875925)和密码(hc123456)合并起来,输入到一个输入框里(例如:29875925hc123456),只需修改终端识别和验证规则(一段字符串中的第一个非数字字符h前面的是账号,后面为密码),也能够完成互联网账号登录。
181 0
一种单输入框互联网账号登录界面,fffjjj.cn
|
前端开发 开发者
多行文本| 学习笔记
快速学习多行文本。
多行文本| 学习笔记
|
网络协议 Linux 网络安全
CentOS7下Firewall一些基本常用命令
CentOS7下Firewall一些基本常用命令
273 0
|
Java Kotlin
【Kotlin 初学者】函数(方法)(下)
函数 函数(function)和方法(method)这两个概念经常被混淆,他们到底有什么关联和区别?其实,它俩没有什么区别只是不同语言叫法不一样,在Java中普遍叫方法。而在Kotlin中普遍叫函数。重点是:函数(function)和方法(method)是同一个东西,别搞错了。
211 0
【Kotlin 初学者】函数(方法)(下)
|
Java 持续交付 应用服务中间件
初次使用云服务器
记录第一次使用服务器
|
存储 NoSQL Java
基于Java语言构建区块链(三)—— 持久化 & 命令行
最终内容请以原文为准:https://wangwei.one/posts/35c768a3.html 引言 上一篇 文章我们实现了区块链的工作量证明机制(Pow),尽可能地实现了挖矿。但是距离真正的区块链应用还有很多重要的特性没有实现。
1788 0