const、指针、引用的综合
目录
代码段
定义引用变量的技巧
内存某处
正误判定技巧
温故知新
代码段
定义引用变量的技巧
// 定义引用变量的技巧#include<iostream>
using namespace std;int main()
{int a = 1;int * p = &a;// 首先,定义一个指针变量int * * q1 = &p;// 然后,将&符号移动到*符号的位置,覆盖*符号int * & q2 = p;// int * * q1 = &p; => int * & q2 = p;// 按照这种方式,最终q2是一个引用变量return 0;
}
内存某处
// 内存某处#include<iostream>
using namespace std;int main()
{// 内存0x0018ff56处int * p1 = (int *)0x0018ff56; // 正确写法1int * && p2 = (int *)0x0018ff56; // 正确写法2int * const & p3 = (int *)0x0018ff56; // 正确写法3// const int * & p4 = (int *)0x0018ff56; // 错误写法return 0;
}
正误判定技巧
// 正误判定技巧#include<iostream>
using namespace std;int main()
{int a = 1;int * p = &a;// const int * & q = p; // 错误!// 将const int * & q = p;还原成const int * * q = &p;// 因为const int * * <= int * *是错误转换// 所以const int * & q = p;错误!return 0;
}
温故知新
1、注意理解正确转换和错误转换!具体可参考文章const和指针的结合中的正误转换
2、如果const右边没有指针*,那么const不参与类型
// 1
int a = 1;
int * p = &a;
// int * <= int *,正确!
int * & q = p;
// 将int * & q = p;还原成int * * q = &p;
// int * * <= int * *,正确!// 2
int a = 1;
int * const p = &a;
// int * <= int *,正确!
int * & q = p;
// 判定方法1
// 将int * & q = p;还原成int * * q = &p;
// int * * <= int * const *,错误!
// 判定方法2
// 将int * & q = p;还原成int * * q = &p;
// int * * q = &p;代表将常量p的地址泄露给普通指针q
// 那么,通过q解引用就有将常量p修改的风险,所以错误!// 3
int a = 1;
const int * p = &a;
// const int * <= int *,正确!
int * & q = p;
// 将int * & q = p;还原成int * * q = &p;
// int * * <= const int * *,错误!// 4
int a = 1;
int * p = &a;
// int * <= int *,正确!
const int * & q = p;
// 将const int * & q = p;还原成const int * * q = &p;
// const int * * <= int * *,错误!相关文章:
const、指针、引用的综合
目录 代码段 定义引用变量的技巧 内存某处 正误判定技巧 温故知新 代码段 定义引用变量的技巧 // 定义引用变量的技巧#include<iostream> using namespace std;int main() {int a 1;int * p &a;// 首先,定义一个指针变量int * * q1 &p;// 然…...
gitee linux免密/SSH 方式连接免登录
目录 账号密码方式免登录(不推荐)添加git配置新建保存密码文件git clone SSH 方式连接免登录(推荐)生成SSH公钥通过 ssh-keygen 程序创建找到SSH公钥 在gitee中添加公钥git clone 参考 账号密码方式免登录(不推荐&…...
计网第一章
注意:计网知识点十分多,在本篇及后续博客主要记录个人认为比较重要的知识点。 1.计算机网络的基本概念 计算机网络就是自治的计算机互连起来的集合。计算机网络可以简称为网络,而互连网就是把许多网络连接起来,即网络的网络。 …...
windows升级记
我的笔记本原来的windows的版本是win10,本来想使用windows 更新下最新的补丁包,但是一直报错,出现错误号:0x80004005,在网上找了一堆的资料都没有办法解决问题,于是把问题反馈到微软的技术服务中心,服务中心…...
【Windows 常用工具系列 5 -- Selenium IDE的使用方法 】
文章目录 Selenium 介绍Selenium IDE 介绍 Selenium IDE安装Chrome 浏览器安装Selenium IDE使用 Selenium 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 Selenium家庭成员有三个,分别是S…...
现代无人机技术
目录 1.发展 2.应用领域 3.对战争的影响 4.给人类带来的福利 5.给人类带来的坏处 1.发展 无人机的发展可以分为以下几个关键步骤: 1. 早期试验和研究:20世纪初,飞行器的概念开始出现,并进行了一些早期的试飞和实验。这些尝试包…...
【机器学习 | 数据预处理】 提升模型性能,优化特征表达:数据标准化和归一化的数值处理技巧探析
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
渐进增强和优雅降级区别
文章目录 前言一、渐进增强二、优雅降级三、两者区别四、渐进增强和优雅降级如何抉择 前言 渐进增强和优雅降级是在css3出现之后才火起来的。比如IE6等,不支持css3,但是css3的样式又特别优秀,所以在高级浏览器中应用css3样式,在低…...
使用provision创建的arxml文件,导入到第三方工具需要注意哪些方面?
provision是一款基于AP AUTOSAR的ARXML设计工具,可以帮助您快速创建和配置ARXML文件。 如果您想要将provision创建的ARXML文件导入到第三方工具中,您需要注意以下几个方面: 您需要确认第三方工具支持的AP AUTOSAR版本和provision生成的ARXML…...
Node.js的核心模块——path
文章目录 path是什么?path怎么用?结论 path是什么? path是Node.js的核心模块,专门用来处理文件路径,path模块为处理文件路径提供了一系列实用的功能和API。 path怎么用? 这里主要介绍一些path模块的常见…...
【MAC】 M2 brew安装 docker 运行失败 解决
MAC 安装 brew install --cask docker 之后一直显示docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 网上看了一些文章 发现 这个不适用于M2 所以要从官网上下载 docker 安装成功...
iPhone苹果手机触屏失灵无法关机,如何强制重启
参考:https://zhuanlan.zhihu.com/p/615223121 1,只轻按一下音量上键后快速松开 2,只轻按一下音量下键后快速松开 3,只按住右侧电源键长按不松手,直到手机关机。...
SQL-每日一题【1484. 按日期分组销售产品】
题目 表 Activities: 编写解决方案找出每个日期、销售的不同产品的数量及其名称。 每个日期的销售产品名称应按词典序排列。 返回按 sell_date 排序的结果表。 结果表结果格式如下例所示。 示例 1: 解题思路 前置知识 group_concat函数的功能 将group by产生的…...
java重写与重载的区别
在Java中,重写(Override)和重载(Overload)是两种不同的概念: 重写(Override): 重写是指子类重新定义(覆盖)了从父类继承而来的方法。重写要求子类…...
Unity 框架学习--1
由浅入深,慢慢演化实现框架 两个类的实现代码完全一样,就只有类名或类型不一样的时候,而且还需要不断扩展(未来会增加各种事件)的时候,这时候就用 泛型 继承 来提取,继承解决扩展的问题&#…...
ERROR: While executing gem ... (Gem::FilePermissionError)
sudo gem install -n /usr/local/bin cocoapodsERROR: While executing gem ... (Gem::FilePermissionError)You dont have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.解决办法: 1.删…...
QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板
QT学习笔记-oracle oci数据库驱动交叉编译并移植到RK3568ARM开发板 0、背景1、搭建交叉编译环境2、交叉编译过程3、把数据库驱动部署到目标系统中 0、背景 在上一文《QT学习笔记-QT安装oracle oci驱动》中介绍了在Windows环境下使用QT访问oracle数据库时遇到驱动无法加载问题的…...
微服务03-RabbitMQ
1、简介 MQ,中文是消息中间件(队列)(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。 简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。 几种常见MQ的对比: RabbitMQActiveMQRocketMQKafka公司…...
QtCreator ui设置界面 Layout 的属性 layoutStretch
layoutStretch 用于控制Layout在被用户进行缩放时。里面控件的缩放比例。如一个水平布局里面有两个控件 一个 QLineEdit 和 QPushButton。首先将两个控件的尺寸策列的水平策略都设置为Expanding。此时在将包含这两个控件的水平布局的 layoutStretch 进行如下设置。 运行程序就…...
APP外包开发的iOS开发语言
学习iOS开发需要掌握Swift编程语言和相关的开发工具、框架和技术。而学习iOS开发需要时间和耐心,尤其是对于初学者。通过坚持不懈的努力,您可以逐步掌握iOS开发技能,构建出功能丰富、优质的移动应用。今天和大家分享学习iOS开发的一些建议方法…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...
