数学系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.mzph.cn/diannao/42536.shtml

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

相关文章

大数据之路 读书笔记 Day4 数据同步

回顾&#xff1a; Day 3 总结了无限客户端的日志采集 大数据之路 读书笔记 Day 3Day 2总结了浏览器端的日志采集 大数据之路 读书笔记 Day 2 数据同步 阿里数据体系中的数据同步&#xff0c;主要指的是在不同的数据存储系统之间进行数据的传输与更新&#xff0c;以保证数据的一…

【代码随想录_Day26】56 合并区间 738 单调递增的数字

Day26 OK&#xff0c;今日份的打卡&#xff01;第二十六天 以下是今日份的总结合并区间单调递增的数字 以下是今日份的总结 56 合并区间 738 单调递增的数字 今天的题目难度不低&#xff0c;尽量还是写一些简洁代码 ^ _ ^ 合并区间 思路&#xff1a; 先排序&#xff0c;按…

reactor和proactor模型

Reactor模型是非阻塞的同步IO模型。在主线程中也就是IO处理单元中&#xff0c;只负责监听文件描述符上是否有事件发生&#xff0c;有的话就立即将事件通知工作线程&#xff0c;将socket可读可写事件放入请求队列&#xff0c;交给工作线程处理。 总而言之就是主线程监听有事件发…

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_3【二十二】

在前面的几期博文中有过解析去除apk中功能权限的反编译步骤。另外在以往博文中也列举了修改apk中选项功能权限的操作方法。今天以另外一款apk作为演示修改反编译去除软件功能限制的步骤。兴趣的友友可以参考其中的修改过程。 课程的目的是了解apk中各个文件的具体作用以及简单…

debain系统使用日志

账号 vboxuser changeme ssh远程登录vbox虚拟机 https://www.cnblogs.com/BuzzWeek/p/17557981.html Terminal su - root changeme sudo apt-get update sudo apt-get -y install openssh-server #启动sshd systemctl status sshd 设置允许ssh登录vbox虚拟机 参考&#xf…

【密码学】什么是密码?什么是密码学?

一、密码的定义 根据《中华人民共和国密码法》对密码的定义如下&#xff1a; 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 二、密码学的定义 密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支&#x…

69.WEB渗透测试-信息收集- WAF、框架组件识别(9)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;68.WEB渗透测试-信息收集- WAF、框架组件识别&#xff08;8&#xff09; 有无waf存在&am…

GESP C++一级真题

PDF图片1-7 点赞❤️关注&#x1f60d;收藏⭐️ 互粉必回&#x1f64f;&#x1f64f;&#x1f64f;

DPDK源码分析之(1)libmbuf模块

DPDK源码分析之(1)libmbuf模块 Author&#xff1a;OnceDay Date&#xff1a;2024年7月2日 漫漫长路&#xff0c;有人对你笑过嘛… 全系列文档可参考专栏&#xff1a;源码分析_Once-Day的博客-CSDN博客 参考文档&#xff1a; DPDK downloadGetting Started Guide for Linux…

JAVA中的for-each(增强型for循环)

Java 8及之后的版本中与for-each循环&#xff08;也称为增强型for循环&#xff09;和数组处理结合使用时&#xff0c;它可能类似于Lambda表达式或流&#xff08;Stream&#xff09;API中的上下文。 举例&#xff1a; public class ArrLength {public static void main(String…

CGAL计算凸包(OSG进行可视化)

目录 一、什么是凸包 二、运行步骤 1、安装依赖项 2、编译osg库 3、运行代码 4、运行截图 一、什么是凸包 凸包是计算几何中的一个基本概念,用来描述一个点集的最小凸包围形。具体来说,给定一个点集,凸包是包含该点集的最小凸多边形或凸多面体。 二维凸包:在二维平面…

迭代器模式在金融业务中的应用及其框架实现

引言 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为设计模式&#xff0c;它提供了一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不需要暴露该对象的内部表示。在金融业务中&#xff0c;迭代器模式可以用于遍历复杂的数据结构&#xff0c;如交易…

算法-常见数据结构设计

文章目录 1. 带有setAll功能的哈希表2. LRU缓存结构3. O(1)时间插入删除随机(去重)4. O(1)时间插入删除随机(不去重)5. 快速获取数据流中的中位数6. 最大频率栈7. 全O(1)结构8. LFU缓存结构 本节的内容比较难, 大多是leetcodeHard难度级别的题目 1. 带有setAll功能的哈希表 哈希…

js计算两个日期直接的间隔天,2018/12/14到2017/11/10有多少天

const startDate new Date(2017-11-10)const endDate new Date(2018-12-14)const diffTime Math.abs(endDate - startDate)const diffDays Math.ceil(diffTime / (1000 * 60 * 60 * 24))console.log(diffDays) // 输出天数差 人工智能学习网站 https://chat.xutongbao.top…

解析Java中1000个常用类:DoubleSummaryStatistics类,你学会了吗?

在线工具站 推荐一个程序员在线工具站:程序员常用工具(http://cxytools.com),有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序员资料站 推荐一个程序员编程资料站:程序员的成长之路(http://cxyroad.com),收录了一些列的技术教程…

VSCode神仙插件——Codeium (AI编程助手)

1、安装&登录插件 安装过程中会让你登录Codeium账户&#xff0c;可以通过Google账户登录&#xff0c;或者可以注册一个Codeium账户&#xff08;如果没有弹出让你登录账户的界面&#xff0c;可以等安装结束后在右下角找到登录的地方&#xff09; 右下角显示如下图所示&#…

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…

【每日一练】python算数练习题(函数.随机.判断综合运用)

""" 幼儿园加减法练习题 答对点赞表情&#xff0c;答错炸弹表情 表情随机出现 如果全答对有大奖 """ import random df0 #定义答对函数 def dd():global dfdf10bq["&#x1f339;&#x1f339;&#x1f339;","&#x1f389;&…

(接上一篇)前端弄一个变量实现点击次数在前端页面实时更新

实现点击次数在前端页面实时更新&#xff0c;确实需要在前端维护一个变量来存储当前的点击次数。这个变量通常在Vue组件的data选项中定义&#xff0c;并在组件的生命周期方法或事件处理函数中更新。 以下是实现这一功能的基本步骤&#xff1a; 定义变量&#xff1a;在Vue组件的…

系统测试-测试方法学习

目录 &#xff08;1&#xff09;等价类 &#xff08;2&#xff09;边界值 &#xff08;3&#xff09;正交&#xff1a;&#xff08;只用于确定排列组合&#xff0c;不确定具体内容&#xff09; (4)判定表法 &#xff08;5&#xff09;流程分析法 &#xff08;6&#xff0…