指针(一)

指针基础

在C++中,指针是至关重要的组成部分。它是C++语言最强大的功能之一,也是最棘手的功能之一。

指针具有强大的能力,其本质是协助程序员完成内存的直接操纵

指针:特定类型数据在内存中的存储地址,即内存地址。

指针只是一个逻辑概念,其实际应用是:指针变量,如,变量p就是指针变量。

指针变量的定义语法:

1.先声明,后赋值:

int num = 10;int* p;
p = #

2.声明和赋值同步:

int num = 10;
int* p = &num

变量类型(如上int)表示,指针(内存地址)指向的内存区域,存放的是整型数据

*符号有两种含义:

  - 声明时:*p,表示变量p,是指针变量(存的是内存地址)

  - 使用时:*p,表示取指针p执行内存区域的数据

cout << p;  //输出num变量地址
cout << *p; //输出数据10

&符号表示取变量内存地址,是一个取内存地址的单目操作符

细节

说明

示例

指针变量类型

说明指针指向区域的数据类型

int *p; 指针指向区域存放int

*符号,在声明

指代变量为指针变量

int * p;

*符号,在使用

取指针指向内存区域的数值

*p 表示数字10

&符号

取内存地址

&num,取num变量内存地址

野指针

野指针:被声明但未初始化(赋值)的指针。这个指针会指向随机的内存空间,可能导致未知问题。

野指针:仅声明未赋值的指针。不可应用,因为其指向的内存区域是随机的、未知的。

普通变量是对数值进行操作,不会有安全问题,所以没有“野变量”一说。

指针对内存直接操作,所以一旦声明但未赋值,就是“野指针”,一旦使用,后果不可预料。

int * p;    // 声明指针(分配了8字节空间), p是野指针因为未被赋值
*p = 10;    // 将10赋予指针p所指向的空间//*p = 10; 是向未知的、随机的4字节内存区域,修改存储值为10

空指针

为避免野指针,应养成良好的变成习惯,及时初始化,或将指针置为空指针更为安全。

int* p = NULL;
int* p = nullptr;
•NULL是C++内置的宏,表示”空、什么都没有”的含义,其本质是0
•nullptr是C++11标准引入的关键字,表示指针为空

空指针,只在需要指针,但需要延迟赋值的场景下作为过渡使用。

空指针:将指针赋值为“空”:NULL、nullptr,避免指向具体内存,更加安全

空指针也不是正常的指针,只是过渡,指针最终要给与具体值,否则就不要用指针。

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

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

相关文章

计算机网络课程实训:局域网方案设计与实现(基于ensp)

文章目录 前言基本要求操作分公司1分公司2总部核心交换机配置实现内部服务器的搭建acl_deny部分用户与服务器出口出口防火墙配置 前言 本篇文章是小编实训部分内容&#xff0c;内容可能会有错误&#xff0c;另外ensp对电脑兼容性及其挑剔&#xff0c;在使用之前一定要安装好。…

大模型日报|8 篇必读的大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.M2Lingual&#xff1a;在大语言模型中加强多语言、多轮次的指令对齐 指令微调对于大语言模型&#xff08;LLM&#xff09;按照指令进行对齐至关重要。最近提出了许多有效的 IFT 数据集&#xff0c;但大多数数据集都…

七天速通javaSE:第一天 入门:Hello,Word与程序运行机制

文章目录 前言一、Hello&#xff0c;Word&#xff01;1.新建一个文件夹存放代码2.新建一个.java文件3.编写代码 二、编译与运行1.在控制台编译java文件2.运行class文件 三、java程序运行机制1.高级语言的分类1.1 编译型语言1.2 解释型语言 2.程序运行机制 四、IDEA五、代码规范…

lambdastreammaven

1.Lambda &#xff08;1&#xff09;Java 8 Lambda 表达式 在 Java 8 以前&#xff0c;若我们想要把某些功能传递给某个方法&#xff0c;总要去写内部类 或匿名内部类类。代码示例&#xff1a; list.sort(new Comparator<User>() { Override public int compare(User …

Linux显示服务器Wayland切换到X11

1、临时切换 &#xff1a; 注销当前用户账户&#xff0c;返回到登录屏幕。 在登录屏幕上&#xff0c;选择您要登录的用户账户。 在输入密码之前&#xff0c;在登录屏幕的右下角可能有一个齿轮图标&#xff0c;点击它以展开更多选项。 在选项中选择“Ubuntu on Xorg”或“Ubu…

2732. 找到矩阵中的好子集

题目 给你一个下标从 0 开始大小为 m x n 的二进制矩阵 grid。 从原矩阵中选出若干行构成一个行的非空子集&#xff0c;如果子集中任何一列的和至多为子集大小的一半&#xff0c;那么我们称这个子集是好子集。 更正式的&#xff0c;如果选出来的行子集大小&#xff08;即行的…

CNN-O-ELMNet: 优化的轻量化通用模型,用于肺部疾病分类和严重性评估| 文献速递-先进深度学习疾病诊断

Title 题目 CNN-O-ELMNet: Optimized Lightweight andGeneralized Model for Lung DiseaseClassification and Severity Assessment CNN-O-ELMNet: 优化的轻量化通用模型&#xff0c;用于肺部疾病分类和严重性评估 01 文献速递介绍 肺部疾病是全球主要的致残和死亡原因。根…

nextjs-创建layouts共用UI和独立pages页面

原文链接&#xff1a;https://nextjs.org/learn/dashboard-app/creating-layouts-and-pages 01-nextjs起步02-css样式03-处理字体和图片05-页面之间的导航跳转更多 到目前为止&#xff0c;您的应用程序只有一个主页。让我们学习如何使用布局和页面创建更多路由。 本章目标 …

【学习】科大睿智解读ITSS认证中咨询机构的作用

企业拥有ITSS认证这不仅将为企业开拓商机&#xff0c;提升竞争力&#xff0c;还能促使企业改进内部运维流程&#xff0c;提高服务质量&#xff0c;为客户提供更优质的IT运维支持。在ITSS认证中&#xff0c;咨询机构扮演着重要的角色&#xff0c;其主要作用包括以下几个方面&…

金融科技在智能投研领域的应用与前景

随着科技的飞速发展&#xff0c;金融科技&#xff08;FinTech&#xff09;正逐步渗透到金融行业的各个细分领域&#xff0c;其中智能投研领域作为金融科技的重要应用之一&#xff0c;正展现出巨大的潜力和广阔的前景。智能投研利用大数据、人工智能&#xff08;AI&#xff09;等…

Java高级重点知识点-14-Set接口、HashSet底层原理讲解

文章目录 Set接口 (HashSet 、LinkedHashSet)HashSet底层原理(重点理解) Set接口 (HashSet 、LinkedHashSet) 无序不重复 HashSet集合 HashSet 是根据对象的哈希值来确定元素在集合中的存储位置&#xff0c;因此具有良好的存取和查找性能。 public class HashSetDemo {publ…

新型防勒索病毒方案分享无需依靠病毒库

MCK具备可信系统&#xff0c;数据库保护&#xff0c;场景白名单&#xff0c;文件保护四大功能。如何运用在防勒索病毒中 在防勒索病毒的问题上&#xff0c;MCK主机的加固功能显得尤为重要。MCK的四大功能——可信系统、数据库保护、场景白名单以及文件保护&#xff0c;为我们在…

Excel 快速查询工具 2023.7.1 更新

Excel 快速查询工具作者表示这个软件是因为有时候需要在 Excel 和网站之间进行切换非常的麻烦&#xff0c;这款软件可以以半透明的方框位于桌面上。 特点 软件窗口半透明并至于顶部&#xff0c;无需来回切换界面。 实时查询&#xff0c;不用点击查询或者按回车之类的&#x…

IDEA 学习之 启动“卡死”

目录 1. 断点问题2. IDEA 版本问题 1. 断点问题 部分断点涉及应用启动&#xff0c;会导致启动“卡死” 2. IDEA 版本问题 部分 IDEA 版本存在启动问题&#xff0c;本人之前遇到过&#xff08;别人启动三分钟&#xff0c;我启动半个小时&#xff09;。更换别的版本&#xff…

docker技术的说明

根据学习网站整理&#xff1a;Docker 10分钟快速入门_哔哩哔哩_bilibili 小白也能看懂的容器科普说明_哔哩哔哩_bilibili 1.虚拟机&#xff0c;需要模拟硬件系统、运行整个操作系统&#xff0c;但体积臃肿&#xff0c;内存占用较高&#xff0c;程序的性能也会受到影响。 2.…

2024年全国VUE考试中心大全!

大家好&#xff0c;华为HCIA、HCIP、HCIE的笔试部分&#xff0c;都需要在VUE考试中心进行预约。但是很多同学都不知道当地VUE考试中心在哪里&#xff01; 为了解决大家的问题&#xff0c;这边整理了全国各大城市的VUE考试中心名称和详细地址。需要的小伙伴们可以来看看&#x…

JavaWeb系列十一: Web 开发会话技术(Cookie, Session)

韩sir Cookie技术Cookie简单示意图Cookie常用方法Cookie创建Cookie读取JSESSIONID读取指定Cookie Cookie修改Cookie生命周期Cookie的有效路径Cookie作业布置Cookie注意事项Cookie中文乱码问题 Session技术Session原理示意图Session常用方法Session底层机制Session生命周期Sessi…

FuTalk设计周刊-Vol.062

#AI漫谈 热点捕手 1.阿里云推出首个AI程序员&#xff1a;分钟级完成应用开发 在阿里云上海 AI 峰会上&#xff0c;阿里云推出了首个「AI 程序员」&#xff0c;其具备架构师、开发工程师、测试工程师等岗位技能&#xff0c;能完成任务分解、代码编写、测试、问题修复、代码提交…

react学习——14react生命周期图(旧)

1、生命周期图 2、单个组件 class Demo extends React.Component{//构造器constructor(props){console.log("count--constructor")super(props)this.state{count: 1}}//组件将要挂载componentWillMount(){console.log("count--componentWillMount")}//组件…

【AI大模型】ChatTTS——颠覆传统,赋能未来的文本到语音技术

文章目录 一、项目介绍二、代码解释三、从技术角度进行分析四、技术细节与实现五、优缺点分析六、应用场景分析七、未来展望八、结论 一、项目介绍 随着人工智能技术的不断进步&#xff0c;语音合成&#xff08;TTS&#xff09;技术得到了飞速发展。ChatTTS项目作为一个开源的…