当前位置: 首页 > news >正文

c++系列之指针

今天不是做题系列,是知识系列啦。

说到指针,我们初学这一定会气的牙痒痒把,笔者也是,这么我好久而不得呀,今天来让我们聊聊指针。

其一

首先,我们明确的知道,假如我们开一个变量,那么我们的c++程序会给他分配内存,并且在此内存上来存储数值。我们使用取地址符&来验证地址

请看代码

 int a=10;cout<<"a="<<a<<"       "<<"a的地址为"<<&a<<endl;

 所以我们每开一个一个变量并为它赋予初始值,那么系统便会为我们在内存里开辟一个空间来存储我们赋予的数值。

由此推广,指针也不例外。我们开辟一个指针变量,系统也会为他在内存中开辟一个空间,只是与基本数据类型不同的是指针变量存储的不是具体的数值例如整数、浮点数之类,而是一个变量的地址。

我们来验证一下:

 int* p;cout<<"我们开的指针变量的地址为"<<&p<<endl;p=&a;cout<<"p的存储的地址为"<<p<<"  "<<"a的地址为"<<&a<<endl;cout<<"我们开的指针变量的地址为"<<&p<<endl;

运行结果:

大家看到了吗,我们开的指针变量本身也有地址,只不过他的地址存储的值也是地址,也就是说指针变量存的就是地址。我们打印指针变量会出现指针变量的值也就是它存储的地址,这就跟我们打印a会出现a存储的值10一样,而打印指针变量的地址则会出现存储指针变量的地址,这二者并不冲突,大家也看到了在内存中开辟的存储指针变量的地址跟指针变量存储的地址不一样。

举个例子吧,好比是你爸爸有你的手机号码,而你有你女朋友的手机号码 。

其二

我们使用*来访问指针变量指向的地址所存储的值。这就是我们所说的操作内存,我们直接在地址上进行值的修改。

看代码

 cout<<"我们来访问我们的指针变量所存储的地址的存储的值为"<<*p<<endl; *p=89300; cout<<"修改a的值为"<<*p<<endl;cout<<"修改后的a的值"<<a<<endl; 

大家看到了吧,我们使用*p直接就可以访问指针变量指向的地址的存储的值。我们修改这块地址存储的之后,这个变量a也就跟着修改了值。

这就是指针的妙用。

简单来说就是,指针变量记录着地址,指针变量就是一个地址,我们使用*来访问地址的值并且修改那么原变量的值也会修改。

大声喊出我是谁(作者狂喜中),接下来会更新一些数据结构之类的东西,(当然是使用c++实现或者c语言,如果时间允许的话)。主营业务Java算法,大家有啥Java算法竞赛类的疑问欢迎私信。

 

 

 

相关文章:

c++系列之指针

今天不是做题系列&#xff0c;是知识系列啦。 说到指针&#xff0c;我们初学这一定会气的牙痒痒把&#xff0c;笔者也是&#xff0c;这么我好久而不得呀&#xff0c;今天来让我们聊聊指针。 其一 首先&#xff0c;我们明确的知道&#xff0c;假如我们开一个变量&#xff0c;…...

网络安全:挑战与防护策略

一、引言 随着科技的快速发展&#xff0c;互联网已经成为我们生活和工作的重要组成部分。然而&#xff0c;随着网络技术的不断升级&#xff0c;网络安全问题也日益凸显。网络攻击、数据泄露、身份盗用等问题&#xff0c;不仅威胁到个人隐私&#xff0c;也对企业和国家的安全构…...

AI 插件:未来的浏览器、前端与交互

想象一下&#xff0c;你在浏览器中粘贴一个 URL&#xff0c;这个 URL 不仅仅是一个网址&#xff0c;而是一个功能强大、能执行多种任务的 AI 插件。这听起来像是未来的事情&#xff0c;但实际上&#xff0c;这种变革已经悄悄进行中。 1. 插件的魅力与局限性 当我第一次接触到…...

R包开发-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 0-前言 1-在RStudio中创建R包项目 2-创建R包 2.1通过R函数创建新包 2.2在RStudio通过菜单来创建一个新包 2.3关于R包创建的说明 3-添加R自定义函数 4-添加C函数 0-前言 目标&#xff1a;在RStudio中创建一个R包&#xff0c;这个R包中包含C函数&#xff0c;接口是Rc…...

土豆叶病害识别(图像连续识别和视频识别)

效果视频&#xff1a;土豆叶病害识别&#xff08;Python代码&#xff0c;pyTorch框架&#xff0c;视频识别&#xff09;_哔哩哔哩_bilibili 代码运行要求&#xff1a;Torch库>1.13.1&#xff0c;其它库无版本要求 1..土豆叶数据集主要包好三种类别&#xff08;Early_Blight…...

三、JVM监控及诊断工具-GUI篇

目录 一、工具概述二、jconsole&#xff08;了解即可&#xff09;1、基本概述2、启动3、三种连接方式4、作用 三、Visual VM 一、工具概述 二、jconsole&#xff08;了解即可&#xff09; 1、基本概述 从Java5开始&#xff0c;在JDK中自带的Java监控和管理控制台用于对JVM中内…...

3211064 - 错误消息 AA634 出现在 T-cd AW01N 或 T-cd AFAR 中

症状 通过 T-cd AW01N 打开资产或在 T-cd AFAR 中重新计算资产值时&#xff0c;出现以下错误消息&#xff1a; AA634 在范围 01 中普通折旧的更正大于累计折旧 环境 SAP R/3SAP R/3 EnterpriseSAP ERP SAP ERP 中心组件SAP ERP 的 SAP 增强包SAP ERP&#xff08;SAP HANA 版…...

k3s or RKE2 helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused

1.报错&#xff1a; Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get "http://127.0.0.1:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused 2.问题原因&#xff1a; 1.因为helm默认使用k8s的配置文件&#xff0c;默…...

网络安全应急响应预案演练

制定好的应急响应预案&#xff0c;只做培训还不够&#xff0c;还需要通过实战演 练来提高应对网络突发事件的行动力&#xff0c;针对网络突发事件的假想情 景&#xff0c;按照应急响应预案中规定的职责和程序来执行应急响应任务。 根据出现的新的网络攻击手段或其他特殊情况…...

Redis 的混合持久化

RDB 相比于 AOF&#xff0c;数据恢复的速度更快&#xff0c;因为是二进制数据&#xff0c;直接加载进内存即可&#xff0c;但是 RDB 的频率不好把握。 如果频率太低&#xff0c;在两次快照期间服务器发生宕机&#xff0c;可能会丢失较多的数据如果频率太高&#xff0c;频繁写入…...

ElasticSearch总结

ES是什么 ES是一个天生支持分布式的搜索、聚合分析的存储引擎 基于Java开发 基于Lucene的开源分布式搜索引擎 ELK &#xff1a; elasticSearch Logstah Kibana 加入 Beats 后 ELK 改为 &#xff1a;Elastic stack ES解决了什么问题 ES解决的核心问题 &#xff1a; 1.海量数…...

手写数字识别之损失函数

目录 交叉熵 手写数字识别之损失函数 分类任务的损失函数 Softmax函数 交叉熵的简单理解&#xff1a;真实分布与非真实分布的交叉&#xff0c;完全对应&#xff0c;熵为0 交叉熵的代码实现 交叉熵 给定一个策略, 交叉熵就是在该策略下猜中颜色所需要的问题的期望值。更普…...

sleep () 和 wait () 有什么区别?

在Java中&#xff0c;sleep() 和 wait() 是两个用于处理多线程的方法&#xff0c;它们具有不同的作用和用途。 sleep()&#xff1a; sleep() 是 Thread 类的一个静态方法&#xff0c;用于暂停当前线程的执行一段指定的时间。它会阻塞当前线程&#xff0c;不会让其他线程获得执…...

第一百二十七回 空安全

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了级联操作符相关的内容&#xff0c;本章回中将介绍 空安全.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 在编译语言中都有空指针或者空对象(null)&#xff0c;它们会引起程序的异常。在移动开发中如果…...

js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

相信很多小伙伴在使用js的过程中&#xff0c;经常会需要对js的数据类型进行判断&#xff0c;而js中可以对数据类型进行判断的方法有很多种&#xff0c;最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种&#xff0c;那么他们有什么区别呢&#xff1…...

uview ui 1.x ActonSheet项太多,设置滚动

问题&#xff1a;ActionSheet滚动不了。 使用uview ui &#xff1a;u-action-sheet, 但是item太多&#xff0c;超出屏幕了&#xff0c; 查了一下文档&#xff0c;并没有设置滚动的地方。 官方文档&#xff1a;ActionSheet 操作菜单 | uView - 多平台快速开发的UI框架 - uni-a…...

信息化发展2

信息系统生命周期 1 、软件的生命周期通常包括&#xff1a;可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等阶段。 2 、信息系统的生命周期可以简化为&#xff1a;系统规划&#xff08;可行性分析与项目开发计划&#xff09;&#xff0c;系统分析…...

ubuntu18 + ros2 eloquent +python3.6

卸载 sudo systemctl stop ros2-eloquent-* #输入以下命令以停止所有ROS 2 Eloquent相关的进程 sudo apt remove ros-eloquent-* #输入以下命令以卸载ROS 2 Eloquent软件包 ls /etc/ros/ ls /opt/ros/ sudo rm -rf /opt/ros/eloquent#输入以下命令以删除ROS 2 Eloquent的配置文…...

围棋与育种

最近因为娃子报名了围棋课&#xff0c;我本着交一次课学两个人的态度&#xff0c;入门围棋&#xff0c;买了些书&#xff0c;听了些课&#xff0c;有所得。学了两个多月&#xff0c;现在6级水平&#xff0c;了解了基本的攻杀技巧&#xff0c;会判断输赢。 下面截图是今天的一盘…...

Python第三方库纵览

Python第三方库纵览 知识点 更广泛的Python计算生态&#xff0c;只要求了解第三方库的名称&#xff0c;不限于以下领域: 网络爬虫、数据分析、文本处理、数据可视化、用户图形界面、机器学习、Web开发、游戏开发等 知识导图 1、网络爬虫方向 网络爬虫是自动进行HTTP访问并捕…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 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…...