黑马程序员---学习笔记10:结构体数组

【黑马程序员】C++学习笔记--入门篇(下) 数组、函数、指针(重点)、结构体(自定义数据类型、重点)、通讯录管理系统案例实战 阅读详情

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-



定义:
结构数组中的每一个元素都是具有相同结构类型的变量

格式:
struct 结构名{
成员列表;
}数组名【数组长度】;

结构体数组的初始化:
1)定义结构体数组的同时进行初始化
struct Student{
char name[21];
int age;
}boy[3]={{"aaa",18},{"bbb",21},{"ccc",33}};

2)定义数组的同时进行初始化:
struct Student girls={{"aaa",18},{"bbb",21},{"ccc",33}};

3)先定义,后初始化,整体赋值
struct Student da[2];
da[0]=(struct Student){"kkk",18};

4)先定义结构体数组,然后初始化
struct Student stu[2];
//strcpy(stu[0].name,"zhangsan");
scanf("%s",stu[0].name);

结构数组的遍历:
用for循环就可以了,和普通数组遍历一样

指向结构体变量的指针:
一般形式:struct 结构体名 *结构指针变量名
struct Student *p=stu1;

结构体指针访问成员变量的形式:
1)(*指针变量名).成员名
2)结构指针变量->成员名

结构体嵌套使用
嵌套回顾:
1)if语句
2)三目运算符嵌套
3)for循环
4)递归函数

结构体嵌套:
成员是一个结构,构成了嵌套的结构。
结构体定义里面有其他结构体。
结构体不可以嵌套自己变量,可以嵌套指向自己这种类型的指针。

嵌套的结构体如何进行初始化?
struct Student stu1={"张三丰",28,59.99f,{1220,12,22}};//包含的结构体可以在内部进行初始化

3)结构体嵌套自身的指针
struct Person{
char *name;
int age;
struct Person *child;
}

struct Person kim={"kim",8,NULL};
struct Person lin ={"Lzy",38,&kim};

printf("%s的儿子是:%s,儿子的年龄是:%d\n",lin.name,(*lin.child).name,(*lin.child).age);
printf("%s的儿子是:%s,儿子的年龄是:%d\n",lin.name,lin.child->name,lin.child->age);

用结构体变量名作为函数的形参,属于值传递,对实参是无法进行修改的。

结构体指针作为函数的参数,用结构体变量的地址传递给函数,在函数中传递过来一个指针,这个指针指向实参,当调用这个函数时,在栈中为函数分配存储空间,但是空间中存储的不是实参的值,而是实参中值的地址,当形参修改成员时,就会通过地址找到实参的值,从而对实参进行修改

黑马程序员考试题 题目一 文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度10,如果超过10,则截取长度8的子串并且最后添加“...”,加一个竖线后输出作者的名字。 namespace test1 { class Program { /*文本文件中存储了多个文章标题、作者,标题和作者之间 阅读详情

相关推荐

黑马程序员-黑马程序员训练营基础测试

为了帮助更多的人了解黑马,同时也

去日留痕 2829

Java数据结构----数组

1、数组可以存放多个。数组也是一种数据类型,是引用类型。即:数数据组一组就是一组数据。2、可以通过.length得到数组的大小长度。

automation666的博客 1457

国密证书实战:在CentOS 7上构建GmSSL私有CA与完整证书链

本文详细介绍了在CentOS 7操作系统上,使用GmSSL工具构建私有国密证书颁发机构(CA)与完整证书链的实战指南。内容涵盖从部署GmSSL、创建国密根CA、签发服务器与客户端证书,到生产环境安全加固与最佳实践的全流程,旨在帮助系统管理员和安全工程师建立统一、可控的内部国密安全通信体系。

jenkins8butler的博客 497

Java实现基本数据结构——数组

首先,我们先设计一个静态的数组,以int数组为例。不考虑扩容,先从最简单的类来理解数组的基本功能。 数组可以表示为下图:上图代表一个容量为7,里面每个空间存储了一个int类型的 1 ,这样一个数组。 数组最大的优点就是通过索引值快速查询数据,比如array[2]可以快速查询到第三个空间中的数据 1 。根据这个优点,我们可以想到,数组比较适合存储索引有语义的数据,比如成绩单这种,我们把名次当做索引,分数当做数据用一个数组存储起来,就可以快速获取某个名次的分数。 按照这个数组,我们可以设计一个数组类,首先设计好

2159

超越界面设计:GUI Guider与LVGL在STM32F103上的系统集成与架构思考

本文探讨了GUI Guider与LVGL在STM32F103微控制器上的系统集成与架构设计,重点分析了工程模块化组织、内存管理优化、硬件驱动接口设计以及FreeRTOS多任务集成。针对STM32F103ZET6的资源限制,提供了实用的移植策略和性能优化方案,帮助开发者构建高效、可维护的嵌入式GUI系统。

j2k3l4的博客 923

HTTPDebugger实战:iTunes登录协议抓包与签名验证全解析

HTTPS抓包是分析客户端与服务端交互的重要手段,其原理是通过中间人证书解密TLS流量,从而观察请求与响应细节。在调试iTunes登录协议时,抓包能帮助我们定位签名验证失败、x-timestamp过期等棘手问题。然而,许多教程中常见的mumu模拟器抓包、fiddler手机抓包或charles抓包unknown问题,往往让新手陷入工具陷阱。本文以HTTPDebugger为切入点,从TLS握手到认证请求,系统拆解iTunes登录协议的关键字段与签名机制,覆盖证书配置、进程监听、域名过滤等实战经验,辅以Apple

weixin_30768881的博客 197

java 数据结构之数组

一、数组基础、使用、操作 package DataStructures; import java.util.*; public class Array_array { /* * 数组 * 定义:数组是一组同种类型的数据的集合 * Note: * 1.数组的下标索引是从0开始 * 2.数组中的元素可以是任意数据类型,但是所有的元素的类型相同,例如int,float,double,char,String等 * 3.常用一维和二维数组,其他的高维数组不经常用,但是使用方法类似

Gloming__zxy的博客 576

Web3前沿技术的智能合约安全审计

随着Web3技术的快速发展,智能合约作为区块链应用的核心组件,其安全性问题日益突出。本文旨在系统性地介绍智能合约安全审计的技术体系,帮助开发者理解智能合约安全风险,掌握安全审计的方法论和工具链。智能合约安全的基本概念常见漏洞类型及其原理安全审计的技术方法实际审计案例分析安全审计工具和资源首先介绍基本概念和背景然后分析常见漏洞和安全风险接着详细讲解安全审计技术提供实际案例和代码示例最后讨论工具资源和未来趋势智能合约:运行在区块链上的自执行程序,代码即法律安全审计。

AI天才研究院 1547

Java数据结构—数组(Array)

数据结构—数组

Rxq_Future的博客 576

C语言 100道经典编程题适用于专升本,专接本【详细分析版】_c语言专升本题目

/法2//left指向起始 right指向数组末尾= 0){left++;//如果*left是奇数就循环接着向后指,直到指向偶数就退出//(left

2401_84978503的博客 695

3.详解Labview串口通讯--从串口线连接到串口通讯保姆级教程

本文非常详细的介绍了使用Labview实现串口通讯,读完题主这篇文章,即使你是今天刚下载的Labview,也能熟练的连接并驱动串口执行,接下来和我一起学习下,记得关注并点赞不迷路

关注我,更多技术问题欢迎私聊~ 1万+

Java 用类实现结构体数组+计网IP地址详解

Java 用类实现结构体数组+计网IP地址详解

m0_55931547的博客 2507

使用Matlab实现海洋监视雷达检测仿真

海洋监视雷达是一项重要的海洋探测技术,可以用于海上船只、飞机、潜艇等目标的探测和监视,具有广泛的应用价值。本篇文章将介绍如何使用Matlab进行海洋监视雷达的检测仿真,并提供相应的源代码。本篇文章提供了利用Matlab进行海洋监视雷达检测仿真的基本思路和代码实现。读者可以根据自己的需求进行修改和优化,以适应不同的应用场景。使用Matlab实现海洋监视雷达检测仿真。

2301_78484069的博客 450

黑马程序员C++学习笔记

C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 ​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 #include<iostream> using namespace std; int main() { cout &

weixin_46015291的博客 6457

【Android调试】高通adb识别不到设备的完整排查指南:从驱动到端口一步到位

本文系统梳理高通(Qualcomm)平台Android设备adb无法识别的完整排查流程。从最基础的USB连接检查开始,到Windows设备管理器中驱动状态的判断、高通USB驱动的正确安装与更新方法,再到adb端口被占用、USB调试未开启、驱动签名校验失败等高频场景的解决方案。每一步均配截图和操作命令,文末附常见报错速查表,适合做系统开发、刷机调试或者Android Framework bringup时遇到adb不通的工程师快速定位。

weixin_44081096的博客 285

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【C++】黑马程序员-C++基础语法学习笔记

根据黑马程序员C++课程内容,结合讲义,将自己学习C++的过程中将自己觉得有必要记下的笔记进行整理,方便复习回顾,编程环境为VSCode。编写代码: 运行程序:作用: 在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明 多行注释: /* 描述信息 */ 通常放在一段代码的上方,对该段代码做整体说明 多行注释快捷键: ①注释/取消:Ctrl+Shift+/ ②注释:Ctrl+K+C ③取消注释:Ctrl+K+U作用:给一段指定的内

qq_62361050的博客 1792

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

黑马程序员C++学习总结【基础篇】

附:参考自哔哩哔哩黑马程序员所做的学习笔记

小幸运召唤师的博客 1322

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

黑马程序员————结构体

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、什么是结构体 对于数组中,每个元素都是相同的,如果我们想使每个元素不同的话,我们可以考虑使用结构体。  结构体:结构体可以由多种不同类型的数据类型组成的新的数据类型。 数组:只能由多个相同类型的数据构成。 二、结构体类型的定义 格式: struct 结构

li1225136753的专栏 455

黑马程序员和尚硅谷前端Javascript学习笔记

元素对象.addEventListener('事件类型',要执行的函数)事件监听三要素:事件源:那个dom元素被事件触发了,要获取dom元素事件类型:用什么方式出发,比如鼠标单击clik、鼠标经过mouseover、文本框输入内容等事件调用的函数(事件处理程序):要做什么事alert('你好呀!')})事件监听的版本扩展:事件监听发展史:DOM L0事件源.on事件 = function(){}按钮DOM L1事件源.addEventListener(事件, 事件处理函数)

m0_74823044的博客 1412

C++基础(黑马程序员)

t水平制表一般为8个空格,使用制表符后显示的长度不一致,是因为使用制表符是把输出的切入点移动到下一个能被8整除的位置上。当大于等于八格,小于十六格,补足十六格;long(长整型) Windows为4字节,Linux为4字节(32位),8字节(64位)变量和常量名可以包含字母、数字、下划线区分大小写,不可以数字作为开头,同时避开关键字。两个小数可以相除,除数不可以为0,两个小数不可以取模(取余)两个整数相除结果依然是整数,10/3=3,10%3=1。赋值运算符:=、+=、-=、*=、/+、%=

weixin_44944522的博客 361

黑马程序员——iOS核心基础(13-14天)-黑马程序员-专题视频课程

C语言基础13-14天。其中包括预处理与结构体。

heima_cxy的博客 247

Visual Studio 2022版本 B站黑马程序员C++自学分享-第一阶段(主要包括:自己敲的代码、通过注释来备注上自己对代码的理解)

黑马的课程里面分为了三大阶段 一、第一阶段 C++基础语法入门 对C++有初步了解,能够有基础编程能力 二、第二阶段 C++核心编程 介绍C++面向对象编程,为大型项目做铺垫 三、第三阶段 C++提高编程 介绍C++泛型编程思想,以及STL的基本使用 ※※※我会一个阶段发一个文章,一共发布三个文章来把学习的代码还有自己在代码旁边标注的对于这些代码的理解和心得体会一起分享给大家!!!

codeLearnerEternally的博客 3857

IO流(黑马程序员学习笔记)

字节缓冲流在源代码中内置了字节数组,可以提高读写效率。效率高(推荐,代码简单),流每次拿指定数组大小的字节,再写入目的源。效率高,每次从数据源拿8192个字节,再放到内存中,每次从内置数组(调用出来的数组)中拿每次拿指定数组大小的字节,写到输出数组中,写满8192个字节后,输出。/*D:\00-课程介绍.mp4 146MB拷贝的效率测试:1. 普通流单个字节拷贝 361719毫秒2. 普通流 + 自定义数组拷贝 146毫秒3. 缓冲流单个字节拷贝 2055毫秒。

A2294249395的博客 891

黑马程序员——结构体

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

want_heima的专栏 386

【黑马程序员】————结构体

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、什么是结构体   数组:只能由多个相同类型的数据构成   结构体:可以由多个不同类型的数据构成 二、结构体的定义 1.定义形式 结构体内部的元素,也就是组成成分,我们一般称为"成员"。 结构体的一般定义形式为: 1 struct 结构体名{ ...

aa123321621的博客 357
上一篇: 黑马程序员---学习笔记9:构造类型和结构体
下一篇: 黑马程序员---学习笔记11:枚举
七分热度_HD
博客等级 码龄14年 12粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值