c语言第12天

news2024/9/24 15:25:25

指针的引入

为函数修改实参提供支持。

为动态内存管理提供支持。

为动态数据结构提供支持。

为内存访问提供另一种途径。

指针概述

内存地址:系统为了内存管理的方便,将内存划分为一个个的内存单元(1个内存单元占1个字 节),并为每一个内存单元进行了编号,内存单元的编号称为该内存单元的地址。一般情况下,我 们每一个变量都是由多个内存单元构成的,所以每个变量的内存地址,其实就是这个变量对应的第 一个内存单元的地址,也叫首地址。

变量指针:变量地址称为该变量的指针。变量地址往往是指变量在内存中第一个内存单元的编号 (首地址)。

指针变量:存放其他变量地址的变量。

指向:指针变量中存放“谁”的地址,就说明该指针变量指向了“谁”。

* :指针运算符

案例:

指针变量的定义

语法:

举例:

注意:

1. 虽然定义指针变量 *a ,是在变量名前加上 * ,但是实际变量名为 a ,而不是 *a ;

2. 使用指针变量间接访问内存数据是,指针变量必须要有明确的指向;

3. 如果想借助指针变量间接访问指针变量保存的内存地址上的数据,可以使用指针变量前加 * 来间 接访问;

指针变量前加 * ,也称为对指针变量 解引用 。

4. 指针变量只能指向同类型的变量,借助指针变量访问内存,一次访问的内存大小是取决于指针变量 的类型。

5. 指针变量在定义同时可以初始化:这一点和普通变量是一样的。

指针变量的使用

使用

指针变量的赋值:

操作指针变量的值

操作指针变量指向的值

两个有关运算符的使用

& 取地址运算符。 &a是变量a的地址。

* 指针运算符 (或称“间接访问”运算符),*p是指针变量p指向的对象的值。

案例:

案例1:

声明a,b两个一般变量,使用间接存取的方式实现数据的交换?

代码:

案例2:

指针变量应用。输入a、b两个整数,按先大后小的顺序输出a和b。

代码:

代码:不推荐

指针变量做函数参数

指针变量做函数参数往往传递的是变量的地址(首地址),借助于指针变量间接访问是可以修改实参 变量数据的。

案例1:

需求:要求用函数处理,用指针变量作函数的参数

方式1:交换指向(指向的普通变量的值不变)

方式2:交换值(指向的普通变量的值改变)

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

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

相关文章

opencv 深度图视差图可视化案例

参考:https://www.cnblogs.com/zyly/p/9373991.html(图片这里面下载的) https://blog.csdn.net/He3he3he/article/details/101053457 双目测距论文: http://www.shcas.net/jsjyup/pdf/2016/9/%E5%9F%BA%E4%BA%8E%E5%8F%8C%E7%9B%AE%E7%AB%8B%E4%BD%93%E8%A7%86%E8%A7%89%E…

【51蛋骗鸡矩阵键盘组合键的使用】2021-12-28

组合键以第一按键所在的行列除外可以和任意的按键组合,每一个都可以和剩下的9个组合。 unsigned char JianPanShaoMiao(/*使用行列反转扫描法*/) { unsigned char H15,L240,Ys0;P1H;if(P1!15){ while(Ys);//消抖HP1;P1L;LP1;while(Ys);//消抖 // while(P1!240);/…

Temu测评自养号的基本概念和目的

在跨境电商领域,自养号的创建与维护已成为提升业务效率、规避平台风险的关键策略。实现稳定、高效、安全的Temu测评自养号运营。 环境系统构建:掌握核心技术,规避依赖风险 市场上的现成解决方案往往缺乏定制化风控能力,自建系统则…

车载 | 硬体: 教你如何进行校准高通QCA6595的Wi-Fi频偏

在高通QCA6595产品在投入使用前,进行频率校准是关键步骤,以保障其与其他设备的顺畅搜索和连接稳定性。本文旨在提供一份全面的操作指南,助您完成校准流程。 首先,根据下图指示,完成QCA6595芯片与电脑、测试仪器之间的…

软件测试下的AI之路(6)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。 💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家…

智改数转:传统企业数字化转型的新机遇

引言 在当今全球化与科技高速发展的时代,数字化和智能化浪潮正以前所未有的速度改变着各行各业的运营方式。作为现代经济的重要组成部分,传统企业面临着来自市场和技术的双重压力。面对新兴技术驱动的新商业模式的冲击,以及不断变化的消费者期…

【后端速成 Vue】实现动态表白墙

前言: 通过前面几篇的文章的讲解,已经学习到了很多的 Vue 指令了,那么现在就将学习到的指令利用起来,做一个小的 demo。 最终效果图: 通过效果图可以发现,一共有这几个功能: ● 渲染列表&…

Raft分布式存储

文章目录 前言一、项目大纲二、Raft模块1.Raft介绍2.大致内容Leader与选举日志同步、心跳raft日志的两个特点 3.主要流程1. raft类的定义2.启动初始化3.竞选leaderelectionTimeOutTicker:doElectionsendRequestVoteRequestVote 4.日志复制、心跳leaderHearBeatTickerdoHeartBea…

华媒舍:6种明星代言推广策略,轻松吸引消费者目光!

1. 背书代言 背书代言是最常见的明星代言策略之一,也是最直接有效的一种方式。背书代言通过让明星以自己的名义、形象和声誉来推荐特定产品或服务,以吸引消费者的关注和购买意愿。这种策略依托于明星在社交媒体、电视广告等渠道的影响力,可以…

【npm】如何将自己的插件发布到npm上

前言 简单说下 npm 是什么: npm 是一个 node 模块管理工具,也是全球最大的共享源。 npm 工具与 nodejs 配套发布,便利开发人员共享代码。npm 主要包括 npm 官方网站、CLI(控制台命令行工具)、和 registry(…

【可能是全网最丝滑的LangChain教程】二十、LangChain进阶之Chains

我们笑着说再见,却深知再见遥遥无期。 01 Chain介绍 在LangChain 中,“Chain” 是指一系列可以串联起来执行特定任务的组件或模型。这些链条可以包括预处理、模型调用、后处理等步骤,它们共同工作以完成一个复杂的语言处理任务。 咱说点人话…

3:svgicon的使用的整体步骤

1:在src下创建icons文件放入svg文件的icon,并切创建index.js, 来处理icon 主要创建:1:src/icons/svg/svg格式icon 2:src/icons/index.js 2:src/icons/index.js 写入代码如下(注释比较明确&#…

【数据结构】六、图:5.图的最小生成树MST(普里姆(Prim)算法、克鲁斯卡尔(Kruskal)算法、Boruvka 算法)

2.最小生成树MST 文章目录 2.最小生成树MST2.1 普里姆(Prim)算法算法思路 2.2 克鲁斯卡尔(Kruskal)算法算法思路 2.3 Boruvka 算法2.3.1基本原理2.3.2基本过程 一个图可以有多个生成树,我们定义无向连通图的 最小生成树(Minimum Spanning Tree&#xff…

PHP餐厅点餐系统小程序源码

🍽️【餐厅点餐新纪元,点餐系统让用餐更便捷!】📱 🔍 一键浏览,菜单尽在掌握 📱 走进餐厅,无需再担心找不到服务员或菜单被抢光!餐厅点餐系统让你轻松扫描桌上的二维码…

机器学习笔记:门控循环单元的建立

目录 介绍 结构 模型原理 重置门与更新门 候选隐状态 输出隐状态 模型实现 引入数据 初始化参数 定义模型 训练与预测 简洁实现GRU 思考 介绍 门控循环单元(Gated Recurrent Unit,简称GRU)是循环神经网络一种较为复杂的构成形式…

轻量级的灰度配置平台|得物技术

一、前言 随着近几年得物的业务和技术的快速发展,我们不管是在面向C端场景还是B端供应链;业务版本的迭代更新,技术架构的不断升级;不管是业务稳定性还是架构稳定性,业务灰度的能力对我们来说都是一项重要的技术保障&a…

x264 编码器 PSNR算法源码分析

PSNR PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)是一种常用的图像质量评价指标,用于衡量图像或视频的清晰度和质量。PSNR是基于信号的最大可能功率与影响信号的噪声功率之间的比率。在图像处理领域,PSNR通常用来评估图像压缩或图像增强算法的效果。 PSNR的计算公式是…

思科CCNP最新考证流程

CCNP CCNP全称思科网络高级工程师认证(Cisco Certified Network Professional),是Cisco思科认证中的中级认证。获得ccnp证书表示着资深网络工程师具有对100个节点到超过500个节点的融合局域网和广域网进行安装、配置和故障排除的能力。能够管…

LeetCode257 二叉树的所有路径

前言 题目: 257. 二叉树的所有路径 文档: 代码随想录——二叉树的所有路径 编程语言: C 解题状态: 没思路,简单题强度好高… 思路 本题利用了递归加回溯的思路。 这道题目要求从根节点到叶子的路径,所以需…

一个Indie Hacker的微SaaS技术栈

如今,可用的技术非常多,我们每个月都会看到各种新的 JS 框架发布,有时,如果你一开始没有选择正确的技术堆栈,以后扩展起来就会很困难。因此,在今天的文章中,我将与你分享我用于开发微型 SaaS 的…