c++ 学习之类型,常量以及变量的重点知识

const 和 volatile 组合考点

const int ( * ) 等价于 int const ( * )

在这里插入图片描述
const int x = 1 ; 说明 x 是常量,无法修改

如何区分指针常量和常量指针

指针常量 为 先有指针后有常量 故为 形式如 : int * const p = & x ; 且const 修饰的是 p ,p是一个指针,所以 对于 p ,无法再用 p = & y ; 进行重新赋值
常量指针 可以 理解为 指向常量的指针,只要指向常量就行,可以更换指向的对象, 形式如 : const int * p = & x; 由于指向的是 常量,所以 *p = 5; 这种操作是违法的

深入了解

看代码

	int x = 1;const int* const y = &x;cout << *y << endl;cout << x << endl;x = 2;cout << *y << endl;cout << x << endl;

上面的代码是否正确,答案是 正确的,虽然无法通过 *y 来修改 x 的值,但是可以通过 直接修改 x 来改变

const , volatile , int 的任意组合 是等价的

在这里插入图片描述

学习指针

在这里插入图片描述

	void* p;int a = 1;p = &a;cout << *p << endl;

上面的代码有什么问题
将整数变量 a 的地址赋值给一个 void* 指针 p。void* 是一种无类型指针,它可以存储任何类型的地址,但它本身没有类型信息。这就是问题所在,因为您在之后尝试通过 *p 来访问该地址,这实际上是一种类型不匹配的操作,可能会导致未定义行为或错误。

就算换做下面的代码

	void* p;int a = 1;p = &a;*(int*)p = 2;cout << *p << endl;

也是错的,因为 p 本质还是 void * 类型的指针
要访问 a 的值,应该使用 int* 指针进行访问,如下所示:

void* p;
int a = 1;
p = &a;// 将 void* 指针转换为 int* 指针,然后访问值
int* intPtr = static_cast<int*>(p);
cout << *intPtr << endl;

这样,您可以正确地将 void* 指针转换为 int* 指针,然后访问 a 的值。在这个示例中,输出将为 1,因为 a 的值是 1。

引用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023最新版WiFi大师专业版小程序带流量主独立版【源码 + 搭建教程】

产品介绍 WiFi大师是一款专为商家店内用户设计的WiFi连接小程序。它的出现有效解决了商家在为客户提供WiFi服务的过程中遇到的各种问题,为消费者提供了更加高效快捷的上网方式。 除此之外,WiFi大师小程序还为商家提供了一些额外的功能,例如店铺优惠券发放和周边热门店铺展…

【MySQL】JDBC编程

MySQL-JDBC编程 文章目录 MySQL-JDBC编程Java的数据库编程JDBC工作原理JDBC的使用驱动包下载导入代码编写 Java的数据库编程 JDBC&#xff0c;即Java Database Connectivity&#xff0c;java数据库连接。是一种用于执行SQL语句的Java API&#xff0c;它是 Java中的数据库连接…

DELL 台式机的内置扬声器如何关闭

DELL 台式机的内置扬声器如何关闭&#xff1f; 点“开始”——控制面板——高清晰音频管理器——右上角“设备高级设置”——“播放设备”——点击“使前部和后部设备播放不同的音频流”前面的小方框——“确认”。ok了。

导航url链接中获取参数

1&#xff0c;如下举例&#xff0c;页面链接带两个参数 http://localhost:9555/index1.html?token4ffb21d4f4314d75a6bee347cd1f53d1&usernamewandu 2&#xff0c;在js 文档就绪函数中通过GetRequest方法获取对应的参数 var token,username; $(function () {token Get…

linux命令集合

cd:切换文件路径 pwd:显示当前所处的路径 mkdir&#xff1a;创建目录比如mkdir test touch:创建一个空文件touch test.txt in:用于指定文件夹在另一个位置建立同步的链接in -s /lib/test1 /user/lj 在user目录下建立指向/lib/test1 目录的lj文件 cat:cat file(查看文件内…

初识网络的发展史、通信基础和原理

目录 一.网络的发展史 二.网络通信基础 2.1IP地址 2.2端口号 2.3认识协议 2.3.1协议是什么&#xff1f; 2.3.2为什么需要协议&#xff1f; 2.3.3OSI模型和TCP/IP体系结构 三.网络通信的原理 总结 &#x1f381;个人主页&#xff1a;tq02的博客_CSDN博客-C语言,Java,J…

R730xd风扇调速

共使用了三个方法都是有效的&#xff0c;dell_fans_controller_v1.0.0和Dell_EMC_Fans_Controller_1.0.1以及ipmitool&#xff0c;前面两个是GUI界面后面一个是命令行工具 重点 我虽然能通过设置的ip地址能访问idrac管理界面&#xff0c;但是使用上面三个工具都是无法获取风扇…

Mybatis-Plus 批量插入数据时报错 java.lang.Object Not Found TableInfoCache

文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下&#xff0c;基本是mybatis-plus源码中的一些东西&#xff1a; com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.to…

REST风格【SpringBoot】

1.REST简介 行为动作 通常模块名使用复数&#xff0c;也就是加s 2.RESTful入门 Controller public class UserController {RequestMapping(value "/users", method RequestMethod.POST)public String save() {System.out.println("user save");return &…

ClickHouse进阶(十二):Clickhouse数据字典-2-字典类型

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

ChatGPT怎么运用在文学分析和文化研究中?

ChatGPT在文学分析和文化研究中具有巨大的潜力。它可以用于解析文学作品、探讨文学理论、分析文化现象以及协助研究者深入理解文学和文化的复杂性。在接下来的1500字中&#xff0c;我将详细回答如何运用ChatGPT在文学分析和文化研究中。 ### 第一部分&#xff1a;文学分析 文…

英码深元“三位一体”AI场景化解决方案,助力多地化工园区快速实现智慧化转型!

我国是世界公认的化工大国&#xff0c;同时也是崛起中的化工强国。近年来多起重大爆炸事故暴露出我国化工园区安全问题突出&#xff0c;特别是在安全风险管控数字化转型、智能化升级方面存在明显短板和不足&#xff0c;尤其突出的痛点&#xff1a;化工园区的日常管理方式较为粗…

SD固定人物角色的方法

文章目录 前言1.固定人物角色1.seed固定2.ControlNet固定3.lora固定角色 前言 本章主要介绍如何用SD绘制漫画 1.固定人物角色 1.seed固定 2.ControlNet固定 3.lora固定角色

电子烟行业常用的英文表达

1. 电子烟的各种表达 a) 电子烟 i. Electronic-cigarette, ii. Electronic smoke, iii. electronic cigarettes iv. Electric cigarette, v. E-Cigarettes vi. e-cigarette, vii. e-Cig viii. E cigar,e-cigar 电子烟雪茄 2. 电子烟特指词汇及衍生 a) VAPE i. Vapo…

【Git】Git 分支

Git 分支 1.分支简介 为了真正理解 Git 处理分支的方式&#xff0c;我们需要回顾一下 Git 是如何保存数据的。 或许你还记得 起步 的内容&#xff0c; Git 保存的不是文件的变化或者差异&#xff0c;而是一系列不同时刻的 快照 。 在进行提交操作时&#xff0c;Git 会保存一…

Scrum工作模式的角色和活动

​Scrum工作模式是一种敏捷软件开发方法&#xff0c;其核心是团队合作和自我组织&#xff0c;旨在通过短周期的迭代开发&#xff0c;实现快速反馈和持续改进。 Scrum工作模式包括以下角色和活动&#xff1a; 1、产品负责人&#xff08;Product Owner&#xff09;&#xff1a;…

Oracle(1):Oracle简介

1 什么是 ORACLE ORACLE 数据库系统是美国 ORACLE 公司&#xff08;甲骨文&#xff09;提供的以分布式数据库为核心的一组软件产品&#xff0c;是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。 ORACLE 数据…

计算机网络篇之端口

计算机网络篇之端口 文章目录 计算机网络篇之端口前言概括分类总结 前言 我们知道ip地址可以确定向哪台主机转发数据&#xff0c;但是数据要发给主机的哪个进程&#xff0c;这个时候端口就派上用场了 概括 计算机网络端口是用于区分不同应用程序或网络服务的逻辑地址&#x…

ICC2: ICG clone与ICG merge

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 默认情况下,initial_place阶段或者在spg flow的initial_opt阶段工具会自动merge clock gating cell。但是如果在place_opt之前使用merge_clock_gates命令了,place阶段就不会再merge clock gate了。…

maven管理android项目

maven管理android项目 1.安装maven-android-sdk-deployer&#xff0c;下载地址&#xff1a;https://github.com/mosabua/maven-android-sdk-deployer 2.解压缩大英文路径文件夹 3.在压缩后的根目录执行mvn clean install -P 2.3.3&#xff08;2.3.3指的是android版本号&#x…