6.二叉树——1.指针

指针详解

  • 指针,即地址,是一个数字,也可以申请一片内存空间将指针值存起来
  • 指针可以定位到内存中不同的字节
  • 运算符*:*p表示取地址p上存储的值,即间接访问
  • **int ***:基类型为int的指针变量,基类型存在的原因在于,如果只知道地址不知道数据类型,那么就无法正确解读该地址的数据
  • 值传递:从main函数向自定义函数传参时,一般使用的是值传递,即复制一份数据传给自定义函数,即:
void swap(int x, int y){int temp = x;x=y;y=x;
}
int main(){int x=1;int y=2;swap(x,y);//swap无法改变main中x和y的值
}
  • 指针传递
void swap(int *x,int *y){int tmp = *x;*x = *y;*y = tmp; 
}
int main(){int m=1;int n=2;int *x=&m;int *y=&n;swap(x,y);//swap可以改变main中m和n的值
}
  • 引用传递:将值传递改成引用传递,可以在调用函数中使用主调函数的数据内容:
void swap(int &x,int &y){int tmp = x;x = y;y = tmp; 
}
int main(){int m=1;int n=2;swap(m,n);//swap可以改变main中m和n的值
}
  • 自由存储空间(堆):在结束函数调用后仍然能够使用,但是需要在使用结束后及时回收(机试不管泄露)。
int * addNode(int i){int *newNode = new int;//在堆上申请空间*newNode = i;return newNode;
}
int main(){int *arry[10];for(int i=0;i<10;i++){arry[i]=addNode(i);}for(int i=0;i<10;i++){delete arry[i];}
}

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

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

相关文章

从入门到精通:NTP卫星时钟服务器技术指南

从入门到精通&#xff1a;NTP卫星时钟服务器技术指南 从入门到精通&#xff1a;NTP卫星时钟服务器技术指南 一、 产品功能 卫星时钟服务器是一款采用GPS或北斗卫星提供高精度网络时间服务的产品。卫星天线安装简便&#xff08;根据天线所放位置提示实时卫星颗数&#xff09;&a…

实现商铺和缓存与数据库双写一致

2.4 实现商铺和缓存与数据库双写一致 核心思路如下&#xff1a; 修改ShopController中的业务逻辑&#xff0c;满足下面的需求&#xff1a; 根据id查询店铺时&#xff0c;如果缓存未命中&#xff0c;则查询数据库&#xff0c;将数据库结果写入缓存&#xff0c;并设置超时时间…

从头搭建GPT(Andrej Karpathy) 笔记

本文来自openAI联合创始人,曾担任特斯拉视觉部门总监的Andrej的视频Let’s build GPT。 文章目录 简单介绍数据处理部分什么是tokenize计算loss直觉上的self-attention矩阵乘法实现self-attention:self-attention和cross-attention有什么区别attention中为什么要做scaling继续…

标定系列——预备知识-OpenCV中与标定板处理相关的函数(四)

标定系列——预备知识-OpenCV中与标定板处理相关的函数&#xff08;四&#xff09; 说明记录棋盘格圆网格 说明 记录了OpenCV中与标定板处理相关的函数用法 记录 棋盘格 圆网格

AWS SES发送邮件时常见的错误及解决方法?

AWS SES发送邮件如何做配置&#xff1f;使用AWS SES发信的限制&#xff1f; 在使用AWS SES发送邮件时&#xff0c;可能会遇到一些常见的错误。AokSend将介绍一些常见的AWS SES发送邮件错误及其相应的解决方法&#xff0c;帮助用户更好地利用AWS SES进行邮件发送。 AWS SES发送…

阿里云ubuntu服务器搭建可视化界面

连接终端 最好初始化服务器的时候 不要以root权限创建 否则会出错 1更新软件: sudo apt-get update2安装ubuntu desktop : sudo apt-get install ubuntu-desktop3 配置ubuntu desktop并重启: sudo apt-get -f install sudo dpkg-reconfigure ubuntu-desktop sudo reboot4 su…

webpack.dev.js(webpack开发环境配置文件)

开发环境&#xff1a;只运行本地资源不打包dist 对于在config目录下的webpack.dev.js 1.在根目录下运行 npx webpack serve --config ./config/webpack.dev.js 2.在package.json文件中配置 "dev":"npx webpack serve --config ./config/webpack.dev.js&quo…

labelme的安装与使用以及如何将labelme标注的json格式关键点标签转为yolo格式的标签

文章目录 本文只关于将关键点json标签转为yolo标签希望得到您的指导背景及代码可用范围一、labelme的安装和使用&#xff08;一&#xff09;labelme的安装&#xff08;二&#xff09;labelme的使用 二、json2yolo 本文只关于将关键点json标签转为yolo标签 如果您的json标签格式…

Axure中后台系统原型模板,B端页面设计实例,高保真高交互54页

作品概况 页面数量&#xff1a;共 50 页&#xff08;长期更新&#xff09; 兼容版本&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;网页模板、网站后台、中台系统、B端系统 作品特色 本品为「web中后台系统页面设计实例模板」&#xff0c;默林原创…

(delphi11最新学习资料) Object Pascal 学习笔记---第8章第1节(继承)

第8章 继承 ​ 如果说编写类的关键原因是封装&#xff0c;那么在类之间使用继承的关键原因就是灵活性。将这两个概念结合起来&#xff0c;你就能拥有可以使用且不会改变的数据类型&#xff0c;并能创建这些类型的修改版本&#xff0c;这就是最初所谓的 “开放-封闭原则”&…

备考ICA----Istio实验10---为单个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验10—为单个主机配置 TLS Istio Ingress Gateway实验 1. 环境准备 部署httpbin kubectl apply -f istio/samples/httpbin/httpbin.yaml 2. 证书生成 2.1 生成根证书 生成根证书keyfile和crt文件 mkdir example_certs_root openssl req -x509 -sha256 …

强化基础-Java-泛型

什么是泛型&#xff1f; 泛型其实就参数化类型&#xff0c;也就是说这个类型类似一个变量是可变的。 为什么会有泛型&#xff1f; 在没有泛型之前&#xff0c;java中是通过Object来实现泛型的功能。但是这样做有下面两个缺陷&#xff1a; 1 获取值的时候必须进行强转 2 没有…

学透Spring Boot — 创建一个简单Web应用

从今天开始&#xff0c;我们将开始学习一个新的系列&#xff0c;那就是在项目中用得非常广泛的一个框架 —— Spring Boot&#xff0c;我们会循序渐进地介绍 Spring Boot 的方方面面&#xff0c;包括理论和实战&#xff0c;也会介绍和Spring Boot一些热点面试题。 概论 本文是…

C#学生信息成绩管理系统

一、系统功能描述 本系统包括两类用户&#xff1a;学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息&#xff1b;开设课程、查询课程、录入成绩、统计成绩、修改成绩、修改个人密码等&#xff0c;而学生则可以通过系统来选择课…

观察者模式和发布-订阅模式有什么异同

观察者模式&#xff08;Observer Pattern&#xff09;和发布-订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;都是用于处理对象之间的一对多依赖关系&#xff0c;但它们在实现方式和应用场景上有一些异同。 观察者模式&#xff1a; 观察者模式定义了一种一对多的依…

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵

基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵 目录 前言 一、Givens旋转简介 二、Givens旋转解释 三、Givens旋转进行QR分解 四、Givens旋转进行QR分解数值计算例子 五、求逆矩阵 六、MATLAB仿真 七、参考资料 总结 前言 在进行QR分解时&#xff0c;HouseHolder变换…

YOLOv8项目实践——目标检测、实例分割、姿态估计、目标追踪算法原理及模型部署(Python实现带界面)

简介 Ultralytics YOLOv8是一种前沿的、最先进的&#xff08;SOTA&#xff09;模型&#xff0c;它在前代YOLO版本的成功基础上进行了进一步的创新&#xff0c;引入了全新的特性和改进&#xff0c;以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计&#xff0c;YO…

量化交易入门(二十三)什么是MTM指标,原理是什么

MTM指标全称是Momentum指标,翻译为动量指标。它用来衡量市场价格在一定时间内上涨或下跌的幅度,属于趋势型指标。其计算公式是: MTM(N) 当前收盘价 - N日前的收盘价 其中N表示统计的周期数,常用参数有6日、12日和24日。 MTM指标的应用要点如下: 判断趋势强弱:MTM数值越大,表…

uniapp 微信小程序 canvas 手写板文字重复倾斜水印

核心逻辑 先将坐标系中心点通过ctx.translate(canvasw / 2, canvash / 2) 平移到canvas 中心&#xff0c;再旋转设置水印 假如不 translate 直接旋转&#xff0c;则此时的旋转中心为左上角原点&#xff0c;此时旋转示意如图所示 当translate到中心点之后再旋转&#xff0c;此…

树状打印二叉树的类Java、Go、PHP

说明和效果 树的结构示例&#xff1a;1/ \2 3/ \ / \4 5 6 7树状打印二叉树Java代码 static class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}}//打印二叉树的类// TreeOperation.javastati…