C语言指针速成下篇

c语言的指针下篇终于迎来了收尾,那么废话不多说,我们直接进入正题

 指针访问数组

# include <stdio.h>
int main ()
{
int arr[ 10 ] = { 0 };
// 输⼊
int i = 0 ;
int sz = sizeof (arr)/ sizeof (arr[ 0 ]);
// 输⼊
int * p = arr  //这一步往下都是指针访问数组
for (i= 0 ; i<sz; i++)
{
scanf ( "%d" , p+i);
//scanf("%d", arr+i);// 也可以这样写
}
// 输出
for (i= 0 ; i<sz; i++)
{
printf ( "%d " , p[i]);
}
return 0 ;
}
语法格式:类型* 指针变量名  =  数组名

函数传参方面

函数的形参(数组)格式:

1.int   数组名[ ] 

2.int*   指针变量名

二级指针的底层逻辑

一级指针:

int*  p  =  &a;

二级指针:

在一级指针的基础上,将一级指针的地址,再次存放进指针变量中。

格式:int* pp = p   或  int** pp = p 或int**pp = *p

那么我们来看道题:

可能刚学习到指针的小伙伴会疑惑,什么是节点呀?这不是在为难我吗。既然不知道节点是什么没关系,但是实参和形参是什么,小伙伴们应该都知道吧,指针刚好又是这节课学的,所以嘛,我们还是可以试试的。

首先我们先讲一下实参这边:  &plist是这个这个变量名(节点)的地址,因为有个&符号,也就是我们上面写的int*  p  =  &a;

那么我们再来看看pilst以及它对应的*pphead如何理解 

首先我们根据之前学的一级指针基础可以发现:2 、3两个是可以互逆的,也就是说&plist的地址给了形参pphead,并且pphead给它“封装”了起来,然后当pphead需要通过地址找到这个变量时,给自己的前面加个星号,以此打开之前自己“封装”好的地址”包裹“,然后根据地址找到之前的变量,看到这里的小伙伴应该已经知道这操作的名字了,没错这就是解引用

那么前两层理解了后最后一层就容易理解了

实参这列的最后一个*plist它是一个一级指针,因此形参这边需要用二级指针来保存实参

看到这里的小伙伴如果还不理解,可以再思考一遍,或者在评论区留言。

那么最后给大家简单介绍一个排序函数

qsort函数

作用:进行数据排序

使用前提条件:排序的数据必须是整型数据

qsort函数的使用模板: 

int compare(const void* a, const void* b)

{
    return(*(int*)a - *(int*)b);

}

qsort(数组名,数组长度,类型字节,compare);

今天的指针篇到此就完结了,大家看完后,可以做一下笔记。

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

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

相关文章

在Tomcat中部署war包

1、准备war包 确保已经有一个有效的war包&#xff0c;该war包包含了web应用程序的所有内容&#xff1b; 2、停止tomcat服务器 在部署之前&#xff0c;确保tomcat服务器已经停止&#xff0c;进入tomcat的配置目录执行命令&#xff1a;[路径]/tomcat/conf&#xff1b; 在Linux…

Socket——向FTP服务器发送消息并获得响应

1、简介 Socket&#xff08;套接字&#xff09;是网络编程中用于描述IP地址和端口的一个抽象概念&#xff0c;通过它可以实现不同主机间的通信。套接字可以分为几种不同的类型&#xff0c;每种类型对应不同的协议和传输模式。 1.1、基本概念 IP地址&#xff1a;用于标识网络…

【管理咨询宝藏137】RB大型卡车集团供应链体系优化设计方案中期汇报

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏137】RB大型卡车集团供应链体系优化设计方案中期汇报 【格式】PDF版本 【关键词】罗兰贝格、供应链管理、运营提升 【核心观点】 - 甲方采取销售…

每天一个项目管理概念之SOW

在项目管理中&#xff0c;Statement of Work&#xff08;SOW&#xff0c;工作说明&#xff09;是定义项目范围、目标、交付成果、时间表和预算的正式文档。 SOW的核心要素 SOW应当包含以下关键组成部分&#xff1a; 项目背景与目标 阐述项目的背景信息、发起原因以及预期达…

CBSD创建和管理bhyve容器Ubuntu@FreeBSD

bhyve介绍&#xff1a;bhyve&#xff1a;FreeBSD下的原生虚拟机管理器_freebsd 虚拟化平台bhyve-CSDN博客 两个bhyve的管理软件&#xff1a;使用bvm管理bhyve虚拟机管理系统FreeBSD-CSDN博客 vm-bhyve&#xff1a;bhyve虚拟机的管理系统FreeBSD-CSDN博客 现在&#xff0c;我…

从零开始做题:LSB

1 题目 2 解题 2.1 使用stegsolve工具 ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc] └─$ java -jar Stegsolve.jar 2.1.1 发现R、G、B的plane0有隐藏信息 2.1.2 提取隐藏信息 2.1.3 save bin后得到二维码 2.1.4 QR Research得到flag 3 flag cumtctf{1sb_i4_s0_Ea4y}

9种慢慢被淘汰的编程语言...【送源码】

技术不断进步&#xff0c;我们使用的编程语言也不例外。 随着人工智能的兴起以及对编程语言使用的影响&#xff0c;我们更加关注哪些语言将在未来继续流行&#xff0c;哪些会被淘汰。 Python、Java 和 JavaScript 等多功能编程语言正在主导市场&#xff0c;而其他一些语言则逐…

Android实现录音并保存为wav文件

场景 在Android中怎样实现类似发送语音消息功能前的按键录音并将其显示在RecyclerView上并且能点击录音文件进行播放。 一、使用AudioRrecord录音 赋予录音权限 打开AndroidManifest.xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST…

kubernetes给指定用户分配调用k8s的api权限

文章目录 概要利用RBAC添加角色权限使用shell命令创建角色权限使用配置文件创建角色权限 调用k8s的api获取k8s账户的token 小结 概要 使用kubernetes部署项目时&#xff0c;有些特殊场景&#xff0c;我们需要在自己创建的pod里面调用k8s的api来管理k8s&#xff0c;但是需要使用…

Spring Boot中的动态数据源切换

Spring Boot中的动态数据源切换 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何在Spring Boot中实现动态数据源切换的技术。动态…

某山词霸翻译js逆向分析

一、基础知识 1、post的几种发包的方式 2、query string和form data的区别 Query String Parameters&#xff1a; GET请求时&#xff0c;参数会以url string 的形式进行传递&#xff0c;即?后的字符串则为其请求参数&#xff0c;并以&作为分隔符。&#xff08;有时候pos…

修改 app id - 鸿蒙 HarmonyOS Next

修改项目 app id 后通过真机 build run 的时候抛出了如下异常; 项目中更改后的配置与真机的不匹配; {app: {bundleName: "com.xxxxxx.xxx_harmony",vendor: "xxxxxx",versionCode: 1,versionName: "3.5.00",icon: "$media:app_icon",…

有什么简单易上手的CRM系统推荐?五款CRM软件评测

在数字化时代&#xff0c;企业急需一个能全面展示客户、销售和分析数据的CRM系统。当然&#xff0c;简单易用的CRM系统成了企业首选。选择系统时&#xff0c;同时要关注它的实际功能是否满足需求&#xff0c;是否容易上手&#xff0c;能否根据企业需求灵活定制&#xff0c;能否…

一种自定义SPI通信协议

本文介绍一种自定义SPI通信协议。 项目开发过程中&#xff0c;有时候会涉及到主处理器或FPGA和MCU之间的SPI通信&#xff0c;涉及到通信就需要考虑通信协议&#xff0c;本文给出一种简单的通信协议。 1.协议格式 协议格式如下图。 其中&#xff0c;将40 bit划分为2大部分&am…

【uniapp】上传附件+Java后端

一、背景 移动端项目使用uniapp开发&#xff0c;项目有上传附件的需求。现在分享给大家&#xff0c;一起进步 二、前端 关键代码&#xff1a; uni.chooseFile({type: "all",count: this.count,success: res > {let len 0;res.tempFiles.forEach((item, index…

【HDFS】关于Hadoop的IPC.Client类的一些整理

org.apache.hadoop.ipc.Client 类是IPC服务的一个客户端。 IPC请求把一个Writable对象当做参数,返回一个Writable对象当做结果value。 一个IPC服务运行在某个端口上,并且由参数class和value class定义。 Router里的IPC.Client对象就两个 有这样一个类:ClientCache 看名字就…

springboot加载注入bean的方式

在SpringBoot的大环境下&#xff0c;基本上很少使用之前的xml配置Bean&#xff0c;主要是因为这种方式不好维护而且也不够方便。 springboto注入bean主要采用下图几种方式&#xff0c;分为本地服务工程注解声明的bean和外部依赖包中的bean。 一、 springboot装配本地服务工程…

Maven deploy上传远程私服失败

Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project 你的项目: Cannot deploy artifacts when Maven is in offline mode 解决方案&#xff1a; 1.IDEA把这个钩子去掉 2. settings.xml里把 <offline>标…

云计算【第一阶段(23)】Linux系统安全及应用

一、账号安全控制 1.1、账号安全基本措施 1.1.1、系统账号清理 将非登录用户的shell设为/sbin/nologin锁定长期不使用的账号删除无用的账号 1.1.1.1、实验1 用于匹配以/sbin/nologin结尾的字符串&#xff0c;$ 表示行的末尾。 &#xff08;一般是程序用户改为nologin&…

[英语单词] standpoint

The way cancellation works, from an application standpoint, is that when thread A no longer needs the work that thread B is performing, thread A calls pthread_cancel on thread B. 驻足点 from an application standpoint&#xff1b;从应用的驻足点来说。 这个和…