C语言指向结构体数组的指针如何应⽤?

一、问题

        在使⽤数组时,可以⽤指向数组或数组元素的指针和指针变量。同样,在结构体类型的数组及其元素中也可以应⽤指针或指针变量来指向。具体怎么应⽤呢?

二、解答

        在如下代码中实现指向结构体数组的指针的应⽤。

#include <stdio.h>
struct student
{int num;char name[20];int age;int score;
};
struct student stu[3] = {{101, "feifie", 18, 99}, {102, "baibai", 19, 89}, {103, "xixi", 18, 76}};
int main()
{struct student *p;printf("学号\t姓名\t年龄\t平均分成绩\t\n");for (p = stu; p < stu + 3; p++){printf("%5d%10s%4d%10d\n", p->num, p->name, p->age, p->score);}return 0;
}

        程序运⾏结果如下所示。

学号    姓名    年龄    平均分成绩101    feifie  18        99102    baibai  19        89103      xixi  18        76

        在上述代码中,p 是指向 struct student 结构体类型的指针,stu[3] 是定义的结构体类型的数组,数组内包含三个学⽣的信息,在全局变量中为数组 stu[3] 赋初值。在 for 语句中, 先使 stu 数组的⾸地址赋给 p,然后在数组范围内遍历 p,每循环⼀次,p ⾃加1。在执⾏了p++后,p 的值就等于 stu+1 ,就是数组 stu[1] 的地址。在循环中执⾏ p++ ,直到,指向的值变为 stu+3 处的值,就不再执⾏循环体,⽽跳出循环,输出结束。

三、总结

        在实现输出指向结构体数组的指针的应⽤中,需要注意如果 p 的初值为 stu ,即数组的⾸地址,则 p+1后 p 就指向下⼀个元素的起始地址。同时也要注意,在程序中⼰经定义了 p 是⼀个指向结构体类型的指针变量,不应⽤来指向 stu 数组元素中的某⼀成员,也就不可以写成此形式:p=stu[2].score。

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

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

相关文章

【华为OD机试-C卷D卷-200分】找城市(C++/Java/Python)

【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。 当…

token存入前端的请求头中,后端获取【秒杀项目】

token存入前端的请求头中,后端获取【秒杀项目】 前言token存入前端的请求头中,后端获取【秒杀项目】token存入前端的请求头中后端获取 前言 2023-08-28 17:34:39 token存入前端的请求头中,后端获取【秒杀项目】 token存入前端的请求头中 function set_login_status() {var …

数据库设计大题详解

大题一&#xff1a;画E-R图&#xff08;概念结构设计&#xff09; 实体就是具体的物品&#xff0c;关系就是实体之间的关系&#xff0c;属性就是特征&#xff0c;内涵的意思 简单的小栗子&#xff1a; 1对1&#xff0c;1对n&#xff0c;n对m&#xff0c;自己考虑两者存在这个关…

PatterNodes 3 mac矢量图设计 ,色彩与图案的完美融合!

PatterNodes 3 for Mac是一款功能强大的矢量图形模式创建软件&#xff0c;专为Mac用户设计。它采用基于节点的界面&#xff0c;支持创建形状、线条、曲线或文本&#xff0c;以构建复杂的矢量图形模式。该软件还具备灵活的参数调整功能&#xff0c;允许用户实时预览结果并进行无…

根据参考风格进行矢量图绘制

摘要 利用机器学习根据给定的文本描述生成图像的技术已经取得了显著的进步&#xff0c;例如CLIP图像-文本编码器模型的发布&#xff1b;然而&#xff0c;当前的方法缺乏对生成图像风格的艺术控制。我们提出了一种方法&#xff0c;用于为给定的文本描述生成指定风格的绘图&…

Spring框架学习笔记(三):AOP编程

1 动态代理 1.1 通过案例理解动态代理 &#xff08;1&#xff09;需求说明&#xff1a; 1. 有 Vehicle接口(交通工具接口, 有一个 run 方法), 下面有两个实现类 Car 和 Ship 2. 当运行 Car 对象 的 run 方法和 Ship 对象的 run 方法时&#xff0c;输入如下内容, 注意观察前后…

HTML静态网页成品作业(HTML+CSS+JS)——在线购物商城网页设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现图片轮播切换&#xff0c;共有4个页面。 二、…

手机图片恢复不求人:手动找回丢失的照片!

无论是外出旅行、聚会还是日常点滴&#xff0c;我们总是习惯用手机记录下来&#xff0c;让美好的瞬间定格在一张张照片中。然而&#xff0c;有时因为误删、清空缓存或是更换手机&#xff0c;那些珍贵的照片突然消失了。手机图片恢复有什么简单易行、容易上手的方法吗&#xff1…

头歌答案哪里找

头歌EduCoder平台实训答案在此&#xff1a;实训笔记 有些作业是在难写&#xff0c;参考上面的连接地址吧&#xff0c;看看有没有自己想要的解答。

容器组件:角标组件,纵向拖动组件(HarmonyOS学习第四课【4.2】)

Badge&#xff08;角标组件&#xff09; 可以附加在单个组件上用于信息标记的容器组件。 说明 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明 子组件类型&#xff1a;系统组件…

Win端交叉编译鸿蒙Ohos Native层第三方库流程

1. 概述 鸿蒙端SDK开发需要依赖使用到的三方库(如OpenCV、其他C库等)&#xff0c;以下为Windows端交叉编译Ohos端三方库流程 2. 准备工作 与Android NDK交叉编译相类似&#xff0c;我们首先需要下载OpenHarmony NDK(包含在OpenHarmony SDK中)&#xff0c;这里笔者使用IDE中自…

Online RL + IL : Active Policy Improvement from Multiple Black-box Oracles

ICML 2023 paper code 紧接上一篇MAMBA&#xff0c;本文在同种问题设定下的在线模仿学习方法。 Intro 文章提出了一种新的模仿学习算法&#xff0c;名为 MAPS&#xff08;Max-aggregation Active Policy Selection&#xff09;和其变体 MAPS-SE&#xff08;Max-aggregation A…

SSL证书对于网络安全的重要作用

SSL证书是一种数字证书&#xff0c;它通过加密技术确保了客户端&#xff08;如浏览器&#xff09;与服务器之间的数据传输安全。当一个网站安装了SSL证书后&#xff0c;用户在浏览器地址栏中可以观察到HTTPS&#xff08;超文本传输安全协议&#xff09;前缀和挂锁图标&#xff…

点量云流分享:关于实时渲染云推流技术

提到云串流或者云推流很多人可能和游戏关联起来&#xff0c;其实这个技术的应用领域不仅仅是游戏&#xff0c;还有云上旅游、考古、智慧园区、智慧城市、虚拟仿真等等行业。其解决的问题是将一些大型的3D应用程序放在云端&#xff0c;程序在运行的时候也是在云端&#xff0c;这…

可视化大屏C位图:生产线,状态一目了然。

在可视化大屏中&#xff0c;将生产线作为C位图&#xff08;核心位图&#xff09;具有以下价值&#xff1a; 实时监控 生产线作为C位图可以实时展示生产线上的各个环节和工艺的运行状态。通过C位图&#xff0c;操作员可以直观地了解生产线的整体运行情况&#xff0c;及时发现异…

数仓建模理论 之 维度建模

说起维度建模&#xff0c;你不得不知道以下几个概念&#xff1a;事实表、维度表、星型模型、雪花模型、星座模型 维度建模 Ralph Kimball推崇数据集市的集合为数据仓库&#xff0c;同时也提出了对数据集市的维度建模&#xff0c;将数据仓库中的表划分为事实表、维度表两种类型…

为什么状态机最好要采用独热码

在状态机的编码方式中&#xff0c;我们常用到三种编码方式&#xff0c;分别是二进制编码、格雷码、独热码。 二进制编码&#xff1a;也称连续编码&#xff0c;属于压缩编码方式&#xff0c;可以使用较少的触发器对应更多的状态&#xff1b; 格雷码&#xff1a;属于压缩编码方…

uniapp微信小程序使用vscode代替HBuilderX开发uniapp微信小程序并且vscode改动代码微信开发者工具能实时更新

前言 最近公司开发新的小程序项目&#xff0c;经调研综合所有人员考虑&#xff0c;用uni-app Vue3tsvite技术栈开发&#xff1b;而官方推荐使用HBuilderX开发&#xff0c;而考虑到目前公司所有前端人员对VsCode更熟悉&#xff0c;故此总结了一下uniapp项目使用vscode代替HBuild…

什么是元宇宙?

元宇宙&#xff08;Metaverse&#xff09;是一个由虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;、区块链、人工智能&#xff08;AI&#xff09;等多种先进技术融合构建的数字化虚拟世界。这个世界不仅限于一个简单的虚拟环境&#xff0c;而是一个能…

Flink ValueStateDescriptor使用实例

在Apache Flink中&#xff0c;ValueStateDescriptor 是用于定义状态的一种数据结构&#xff0c;它允许你为每个键&#xff08;key&#xff09;存储一个值&#xff08;value&#xff09;。状态是 Flink 流处理模型的核心概念之一&#xff0c;它允许你在任务失败和恢复时保持数据…