数学系C++(六七)

目录

* &指针与地址

void指针

指针可以等于:

const

指向常量的指针 const int *px

常指针 int * const px

指向常量的常指针const 类型标识符 * const 指针名

指针加减:

指针恒等式

函数×指针【待续】

指针型函数:

指向函数的指针:指向函数存储的首地址

引用与指针

内存分配【待续】

输入出


* &指针与地址

声明指针:int *px ;

给指针赋值:int x;px=&x; (指针的变量名只能等于地址,*表示取后面地址指向的值)

等价:x=3  《=》 *px=3(*+地址 也可以改变 地址所指向的值)

void指针

void 类型的指针

 void 类型的指针可以存放任何类型数据的地址,即指向任何类型的对象

 不允许直接通过 void 指针来访问其目标对象!

 若需访问 void 类型指针的目标对象,必须通过显式类型转换指明目标对象的类型

指针可以等于:

 指针可能的取值

(1) 空指针:0, NULL 或值为 0, NULL 的常量

(2) 类型匹配的对象的地址

(3) 同类型的另一有效指针

(4) 类型匹配的对象的前、后地址(相对位置)

int x[3] = {1,2,3};int * px = &x[0];int * py = &x+1;

int * pz;pz = 0; // OK

pz = NULL; // OK

没有初始化或赋值的指针是无效的指针;引用无效指针会带来难以预料的问题! 

const

指向常量的指针 const int *px

const 类型标识符 * 指针名

const对象只能使用const指针

const指针可以指向非const对象

但是修改非const对象的值不能通过const指针进行修改

常指针 int * const px

类型标识符 * const 指针名

px一旦赋值,就不能修改

int * const px=a;就不能再px=b了

指向常量的常指针const 类型标识符 * const 指针名

指针不能改,也不能通过指针改变量值

指针加减:

每次运算  :1=1*每个变量所占空间

指针恒等式

int a【n】;int *pa=a;

2dim:

指针p

函数×指针【待续】

以地址方式传递数据,形参和实参指向共同的内存地址,是同一个数据

形参是指针时,实参可以是指针或地址

可以传递函数代码的首地址,即将函数作为参数

函数间需要传递大量数据(数组)时,通常是利用指针传递数据的首地址 

指针型函数:

返回值为【全局变量的】指针or【全局变量的】地址

指向函数的指针:指向函数存储的首地址

int Gcd(int x, int y);
int Lcm(int x, int y);
int (* pf)(int, int); // 声明函数指针
pf=Gcd; // pf 指向函数 
Gcdcout << "最大公约数:" << pf(a,b) << endl;

 可以象使用函数名一样使用函数指针

引用与指针

► 引用是变量的别名,只针对变量,函数没有引用

► 引用必须初始化,且不能修改

► 用引用能实现的功能,用指针都能实现

► 传递大量数据时(数组),建议使用指针

int a = 3;
int * pa = &a; // 指针
int & ra = a; // 引用(取别名)

内存分配【待续】

new

delete,new完了一定要delete

引用和指针有何区别?

给指针赋值=地址,引用赋值=自身

改变变量:*pa=5《=》&pa=5 

初始化是不同的:

引用是一个变量的别名,它必须在定义时初始化,并且一旦初始化之后就不能再指向其他变量。
指针是一个变量,用来存储另一个变量的地址。指针可以在任何时候被重新赋值,以指向不同的变量

-----------------------------以上为第六讲。

输入出

文件输入出等——————————以上为第七讲。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

52-5 内网代理2 - LCX端口转发(不推荐使用LCX)

环境搭建: 本地开3台虚拟机:kali(必须)、windows2012与2008 (可换成其他windows虚拟机) kali - 网络配置成桥接模式 windows2012 - 设置两个网卡,NAT与桥接模式 注意:windows2012要关闭防火墙,要不然其他主机ping不通 关闭防火墙后再开启远程桌面连接 windwos20…

拉曼光谱入门:3.拉曼光谱的特征参数与定量定性分析策略

1.特征参数 1.1 退偏振率 退偏振率&#xff08;p&#xff09;是一个衡量拉曼散射光偏振状态的参数&#xff0c;它描述了拉曼散射光的偏振方向与入射光偏振方向之间的关系。退偏振率定义为垂直偏振方向的拉曼散射强度与平行偏振方向的拉曼散射强度之比。退偏振率&#xff08;p&…

Hi6602 恒压恒流SSR电源方案

Hi6602是一款针对离线式反激电源设计的高性能PWM控制器。Hi6602内集成有通用的原边恒流控制技术&#xff0c;可支持断续模式和连续模式工作&#xff0c;适用于恒流输出的隔离型电源应用中。Hi6602内部具有高精度65kHz开关频率振荡器&#xff0c;且带有抖频功能可优化EMI性能。H…

【全面介绍下如何使用Zoom视频会议软件!】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

WEB自动化框架封装MySQL连接及sql断言教程

为了在Web自动化测试中连接MySQL数据库并进行SQL断言&#xff0c;您可以按照以下步骤&#xff1a; 安装MySQL Connector/Python驱动程序&#xff0c;并导入它。 使用Connector/Python创建一个连接对象&#xff0c;指定所需的主机名、用户名、密码和数据库名。 创建一个游标对…

系统级别的原生弹窗窗口

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原生的弹出窗口dialog</title><style>…

相见恨晚的《新程序员》 AI 专辑

声明&#xff1a;本文并不什么“软文”&#xff0c;是我的真实感受分享。本人和《新程序员》无任何利益关系&#xff0c;读者购买专栏我不会获得任何分成。 一、前言 前不久有位朋友送我一本 CSDN 出品的 《新程序员 006&#xff1a;人工智能新十年》 的杂志。 说实话&#x…

Axure教程:App侧边抽屉菜单交互制作

今天给大家示范一下抽屉菜单在Axure中的做法。在抽屉式菜单中&#xff0c;要实现两个交互效果&#xff0c;分别是&#xff1a; 交互一 抽屉菜单中1、2级菜单项的伸缩效果 实现逻辑&#xff1a;设置动态面板的切换状态及“推动/拉动原件”实现 交互二 菜单项的选中状态切换 …

Nuxt3 的生命周期和钩子函数(十)

title: Nuxt3 的生命周期和钩子函数&#xff08;十&#xff09; date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要&#xff1a;本文详细介绍了Nuxt3框架中的五个webpack钩子函数&#xff1a;webpack:configResolved用于在webpack配置解析后读取和修改配置…

秋招力扣刷题——从前序与中序遍历序列构造二叉树

一、题目要求 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 二、解法思路 根据二叉树的遍历结构重构二叉树&#xff0c;至少两种遍历方式结合&…

批量爬取B站网络视频信息

使用XPath爬取B站视频链接等相关信息 分析B站html框架获取内容完整代码 对于B站&#xff0c;目前网上的爬虫大多都是使用通过解析服务器的响应来爬取想要的内容&#xff0c;下面我们通过使用XPath来爬取B站上一些想要的信息 此次任务我们需要对B站搜索到的关键字&#xff0c;并…

苍穹外卖--sky-take-out(四)10-12

苍穹外卖--sky-take-out&#xff08;一&#xff09; 苍穹外卖--sky-take-out&#xff08;一&#xff09;-CSDN博客​编辑https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2014.3001.5501https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2…

创维汽车开展年中总结会:创新创造·勇开拓 智慧经营·攀高峰

2024年7月3日&#xff0c;回顾上半年的工作成果&#xff0c;总结经验教训&#xff0c;明确下半年的发展方向和重点任务&#xff0c;创维汽车于山西省晋中市榆次区山西联合创维体验中心开展年中总结会。 创维集团、创维汽车创始人黄宏生&#xff1b;开沃集团联合创始人、首席执…

昇思25天学习打卡营第12天|FCN图像语义分割

文章目录 昇思MindSpore应用实践基于MindSpore的FCN图像语义分割1、FCN 图像分割简介2、构建 FCN 模型3、数据预处理4、模型训练自定义评价指标 Metrics 5、模型推理结果 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 基于MindSpo…

MySQL Binlog详解:提升数据库可靠性的核心技术

文章目录 1. 引言1.1 什么是MySQL Bin Log&#xff1f;1.2 Bin Log的作用和应用场景 2. Bin Log的基本概念2.1 Bin Log的工作原理2.2 Bin Log的三种格式 3. 配置与管理Bin Log3.1 启用Bin Log3.2 配置Bin Log参数3.3 管理Bin Log文件3.4 查看Bin Log内容3.5 使用mysqlbinlog工具…

Oracle连接失败,ORA-12514, TNS:listener does not currently know of service requested in connect descripto

问题描述 在Window上搭建Oracle数据库,安装后启动,使用Dbeaver连接时无法连接,报错:Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor Listener refused the c…

MySQL 中的 DDL、DML、DQL 和 DCL

文章目录 1. 数据定义语言&#xff08;DDL&#xff09;2. 数据操作语言&#xff08;DML&#xff09;3. 数据查询语言&#xff08;DQL&#xff09;4. 数据控制语言&#xff08;DCL&#xff09;总结 在 MySQL 数据库管理系统中&#xff0c;SQL 语句可以根据其功能分为不同的类别&…

Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目

学习目标 能够说出git的作用和管理源代码的特点能够如何创建git仓库并添加忽略文件能够使用add、commit、push、pull等命令实现源代码管理能够使用github远程仓库托管源代码能够说出代码冲突原因和解决办法能够说出 git 标签的作用能够使用使用git实现分支创建&#xff0c;合并…

Git注释规范

主打一个有用 代码的提交规范参考如下&#xff1a; init:初始化项目feat:新功能&#xff08;feature&#xff09;fix:修补bugdocs:文档&#xff08;documentation&#xff09;style:格式&#xff08;不影响代码运行的变动&#xff09;refactor:重构&#xff08;即不是新增功能…

【基于R语言群体遗传学】-10-适应性与正选择

在之前的博客中&#xff0c;我们学习了哈代温伯格模型&#xff0c;学习了Fisher模型&#xff0c;学习了遗传漂变与变异的模型&#xff0c;没有看过之前内容的朋友可以先看一下之前的文章&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 一些新名词 &#xff08;1&#xf…