C语言-【指针二】-【指针运算/指针和数组】

news2024/11/28 0:56:48

       好久不见吖,好啦,言归正传,这篇文章接着上篇文章的尾巴接着介绍指针相关知识哦!

一.指针运算

(1)指针+-整数

(2)指针-指针

(3)指针的关系运算

接下来,分别详细介绍吧:

(1)指针+-整数

理解:指针加(减)一个整数i,其实就是将指针向后(向前)移动了i个单位(指向了下一个(前一个)元素的存储单元),这里所讲的单位大小其实是指指针p的类型所占的字节数。

指针的类型决定了指针向前或者向后走一步(步长)有多大(距离);

这里简单的说一下:不同类型的指针加减整数所跳过的字节数是不同的,比如说整型指针+1跳过 4个字节,字符指针+1跳过1个字节。

(2)指针-指针

前提条件:指针和指针指向了同一块空间(这两个指针指向了同一块连续的地址)

 

画个图给大家看吧:

   在这里,pa指向了这个数组首元素的地址,pb指向了a[6]的地址,那么pb-pa的意思就是这两个指针之间的元素个数,显而易见,pb - pa = 6。

 指针-指针得到的结果的绝对值,是指针和指针之间的元素个数。

(3)指针的关系运算

  指针的关系运算其实说直白点就是比较指针的大小。地址是有大小的,可以将地址打印出来,从而比较指针的大小,指向地址大的指针大于指向地址小的地址。

这里有张指针的关系运算符的表:

 说明:

(1)不同数据类型的指针之间的关系运算是没有意义的哦,当然,指针和指针如果没有指向同一块空间(这两个指针没有指向同一块连续的地址),那么关系运算也是没有意义的哦。

(2)指针可以和0进行等于/不等于的关系运算,通过这种方式,来判断指针是否为空。

二.指针和数组

   很多初学者在学习这一块知识的时候总是觉得指针和数组是一样的,真的是这样子的吗?下面,给大家说一下指针和数组之间是什么关系呢?

指针变量就是指针变量,不是数组,指针变量的大小是4/8个字节,专门是用来存放地址的。数组就是数组,不是指针,数组是一块连续存放的空间,可以存放1个或者多个类型相同的数组。那它们没有联系吗,不不不,是有联系的,在数组中,数组名其实是数组首元素的地址,数组名 == 地址 == 指针,数组是可以通过指针来访问的,当我们知道数组首元素的地址的时候,因为数组是连续存放的,所以,我们就可以通过指针遍历访问数组了。

举个简单的例子:

从这个例子中再一次证明了数组名和数组的首元素地址是一样的。

可以说除了两种特殊的情况,在其他情况下,数组名表示的就是数组首元素的地址。

特殊情况:(我们就当它俩不合群,是个例外吧,哈哈哈)

(1)sizeof(数组名):计算的是整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数组。

(2)&数组名:取出的是数组的地址。&数组名,数组名表示整个数组。

好啦,关于指针中指针运算以及指针和数组简单的介绍就先到这里啦,后面还会对指针相关知识进行更深层次的介绍哦~

如有错误之处,欢迎各位小伙伴们留言哦~

 

 

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

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

相关文章

Apache Kafka - 高性能原因探究

文章目录 概述图解 概述 Kafka 的高性能主要依赖于以下几个关键因素: 分布式架构:Kafka 采用分布式集群架构,可以水平扩展到上万个节点,支持每秒处理百万级消息。持久化存储:Kafka 使用文件系统持久化存储消息,避免了数据库成为性能瓶颈,大大提高了吞吐量。顺序读写:Kafka 的…

计算机视觉:卷积核的运行过程

本文重点 我们前面从直观角度理解了卷积神经网络的卷积在特征提取的作用,本节课程我们从数学角度来看一下,卷积是如何计算的? 计算步骤 1. 将卷积核与输入图像的某一部分进行逐元素相乘。 2. 将相乘后的结果求和,得到卷积核在该部分的输出值。 3. 重复以上步骤,将卷积核…

达梦8逻辑备份导出导入dexp/dimp

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备…

数据结构作业4-图

图数据结构的小练习: 文章目录 数据结构作业4-图3 对图1所示的带权无向图。(40分)解: 4 对于图1所示的带权无向图。(20分)解: 5 已知带权有向图如下图所示,请利用Dijkstra算法从顶点…

基于操作系统的基础IO

1.c语言中的文件输入输出 在观看本章节的时候,大家可以去看看之前c语言的文件输入输出的有关博客。 好那么废话不多说之间进入本章正题: 我们都知道c程序默认会打开三个输入输出流: stdin:相当于键盘 stdout:相当于显示器 st…

【Linux】基本指令(四)

目录 🍈一.sort指令🍈 🍉二.uniq指令🍉 🍊三.wc指令🍊 🍋四.which指令🍋 🍎五.whereis指令🍎 🍏六.top指令🍏 🍐七…

【玩转 Cloud Studio】腾讯Cloud Studio 云端开发环境上手体验

目录 1、Cloud Studio简介 2、功能体验 3、Cloud Studio优点 4、总结 1、Cloud Studio简介 Cloud Studio(云端 IDE)是基于浏览器的集成式开发环境,为开发者提供了一个稳定快速的云端工作站。用户在使用 Cloud Studio 时无需安装,只…

【LCD应用编程】绘制点、线、矩形框

之前获取LCD屏幕参数信息时了解到,LCD屏是 FrameBuffer 设备,操作 FrameBuffer 设备 其实就是在读写 /dev/fb0 文件。除此之外,LCD屏上包含多个像素点,绘制点、线、矩形框本质是在修改这些像素点的颜色。 目录 1、定义 lcd_color…

VS+Qt — Vistual Studio 2022+Qt6安装教程以及解决Qt Vistual Studio Tools下载慢和VS无法打开.ui进行设计的问题

目录 Vistual Studio 2022下载 Qt下载 Qt Vistual Studio Tools下载 方法1 方法2 方法3 方法4 Vistual Studio 2022配置Qt6 创建Qt项目 若VS无法打开.ui进行设计 Vistual Studio 2022下载 以前因为安装库的关系,已经下载过VS2022了,详细请看这…

C++ 学习 ::【基础篇:05】:C++ 函数重载认识及使用、简单介绍:C++ 支持函数重载的原因

本系列 C 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C的三大特性等&#…

CSS之基础扫盲

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 目录 文章目录 二、CSS基础语法 2.1 CSS引入方式 2.1.1 内部样式 2.1.2 外部样式 2.1.3 内联样式 2.2 CSS选择器 2.2.1 标签选择器 2.2.2 类选择器 2.2.3 id选择器 2.2.4 通配符选择器 2.2…

HNU-操作系统OS-实验Lab7

OS_Lab7_Experimental report 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 实验目的 理解操作系统的同步互斥的设计实现;理解底层支撑技术:禁用中断、定时器、等待队列;在ucore中理解信号量(semaphore)机制的具体实现;理解管程机制,在ucore内…

动力电池管理系统(BMS)

BMS技术 目录 BMS技术 一、BMS简介 二、BMS主要功能 1、参数检测 2、剩余电量(SOC)估计 3、充放电控制 4、热管理 5、均衡控制 6、故障诊断 7、信息监控 8、参数标定 9、CAN总线接口 三、BMS架构组成 1、BMS的拓扑架构 1、1集中式架构的B…

JavaEE进阶(5/27)Spring Boot

目录 1.认识Spring Boot 2.Spring Boot的优点 3.SpringBoot项目创建 4.resource文件夹 和test文件夹 5.使用一个Spring Boot项目 1.认识Spring Boot Spring Boot 中的Boot 是启动引导的意思 如果Spring相比于普通java开发是从走演变到了汽车,那么Spring boot 相比…

【博客历程】比起方法和技巧,我更想谈质量与坚持

【博客历程】比起方法和技巧,我更想谈质量与坚持 文章目录 【博客历程】比起方法和技巧,我更想谈质量与坚持[toc]我的第一篇博客为什么坚持写博客为什么选择CSDN何为质量未来 还没准备好,等我怎样怎样时再 还在犹豫什么时候开始,…

ssm+springboot+java高校图书馆图书借阅座位预约管理系统系统

陕理工图书馆管理系统包括多个功能模块:图书类别管理模块、图书管理模块、读者管理模块、借阅管理模块、预约管理、推荐管理。管理员登入后,维护图书借阅的信息。本文介绍了使用Java技术开发陕理工图书馆管理系统的设计与实现过程,首先对实现…

微信小程序 java+nodejs+vue美食定制个性化点餐推荐系统

社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非…

Deathnote

Deathnote 1.主机发现 arp-scan -l2.扫描端口 nmap -Pn -sV -P- -A 192.168.80.132开放了80、22端口 3.访问80端口 修改host文件访问80端口时进行了跳转到deathnote.vuln/wordpress,修改hosts文件,将该域名解析到靶机ip windows hosts文件路径&…

canal server 标准化集群搭建(完结)

4.2. 创建 server 所属集群:选择刚才添加的 “集群名称” server 名称: server_1、server_2、server_3 依次类推 server ip:server 的 ip 地址 admin 端口:canal server 与 canal admin 的通信端口,非生产环境从 2…

Android 12.0Launcher3 电话和短信app图标显示未读短信和未接来电的条数

1.概述 在12.0产品开发中,最近客户有需求要求在电话app图标显示未接来电的条数 在短信app图标上显示未读信息的条数 根据需求首选要在Launcher3的Launcher.java中,启动launcher时,查询未读短信和未接来电 在有未接来电时,更新未接来电的数量 在有未读短信时,更新未读短信的…