当前位置: 首页 > news >正文

结构体数组复习

目录

一、定义结构体数组

1、定义结构体

2、声明结构体数组

二、初始化结构体数组

三、访问结构体数组元素

四、修改结构体数组元素

五、使用指针和动态内存分配

五、总结


        在C语言中,结构体数组是一种将多个结构体类型的元素组织在一起的灵活数据结构。结构体允许你将不同类型的变量组合在一起,而结构体数组则可以存储多个具有相同结构的元素。

一、定义结构体数组

1、定义结构体

        首先,你需要定义一个结构体(注意:如果在定义时未初始化,只能通过间接访问的方式赋值)。例如,定义一个表示学生的结构体:

#include <stdio.h>  struct Student {  char name[50];  int age;  float grade;  
};
2、声明结构体数组

        你可以在定义结构体后,声明一个结构体数组来存储多个学生信息。例如,声明一个可以存储10个学生的数组:

struct Student students[10];

二、初始化结构体数组

        你可以在声明时初始化结构体数组,具体示例如下:

struct Student students[3] = {{"Alice",20,85.5},{"Bob",21,90.0},{"Charlie",22,78.0}
};

注意事项:最后一个成员变量后不加','

三、访问结构体数组元素

可以使用索引访问结构体数组中的每个元素及其成员:

#include <stdio.h>int main()
{struct Student students[3] = {{"Alice", 20, 85.5},  {"Bob", 21, 90.0},  {"Charlie", 22, 78.0}};//打印每个学生信息for(int i = 0; i < 3; i++){printf("",students[i].name,students[i].age,students[i].grade);}return 0;
}

四、修改结构体数组元素

        也可以直接修改结构体数组中的元素,例如:

students[1].grade = 92.0;//修改Bob的成绩

五、使用指针和动态内存分配

        如果你需要动态的创建结构体数组,可以使用malloc:

#include <stdio.h>
#include <stdlib.h>int main()
{int n =5;//例如,我们想要一个有5个学生的数组struct Student *students = (struct Student *)malloc(n * sizeof(struct Student));if(NULL == students){perror("Malloc Error!");//处理分配失败return -1;}//使用students...//别忘了free释放内存free(students);return 0;
}

五、总结

        结构体数组在C语言中是一种强大的数据结构,允许你将同类型的多个结构体实例储存在一起,非常适合用于处理相关的数据集合。通过正确的使用结构体和数组,你可以有效的组织和管理你的数据。


http://www.mrgr.cn/news/62754.html

相关文章:

  • Python中的for循环
  • 邮件发送excel带预览excel功能
  • Android R S T U版本如何在下拉栏菜单增加基本截图功能
  • Python 3 维护有序列表 bisect
  • 哈工大《理论力学》第九版课后答案解析及笔记PDF
  • 光纤零基础入门笔记(1)
  • (蓝桥杯C/C++)——STL(下)
  • 【微服务】Nacos 注册中心
  • 17. 从尾到头打印链表
  • 白盒测试基本概念(学习笔记)
  • Redis数据库
  • 【IC每日一题--单bitCDC跨时钟和同步FIFO】
  • mysql8.0.32升级到8.0.40
  • LeetCode20:有效的括号
  • 支持ANC的头戴式蓝牙耳机,更有小金标认证,QCY H3 Pro体验
  • 10.30
  • AR基础知识:SLAM同时定位和构图
  • 功能强大视频编辑软件 Movavi Video Editor Plus 2024 v24.2.0 中文特别版
  • ValueError: Object arrays cannot be loaded when allow_pickle=False
  • Typora配置GitHub图床--结合PicGo
  • 配置DDNS结合光猫路由器实现外网映射
  • SAP 采购申请的增强(对内容的处理,比如批次)
  • MySQL的使用
  • 亚马逊云免费Amazon CloudFront服务
  • 基于单片机的无线气象仪系统设计(论文+源码)
  • 程序员工作七年,我踩过的那七个坑