C语言——初识结构体定义与使用

C语言中的结构体(Struct)是一种复合数据类型,它允许你将不同类型的数据项组合成一个单一的类型。结构体在C语言中非常有用,特别是在需要处理复杂数据时,比如存储一个人的姓名、年龄、地址等信息时,使用结构体可以很方便地将这些信息组合在一起,并以一个整体的形式进行访问和操作。

定义结构体

结构体的定义使用struct关键字,后跟结构体的标签(也就是名字)和结构体体本身。结构体体包含了一组成员列表,每个成员都是某种数据类型(基本数据类型、数组、指针等)的变量。成员之间用分号分隔。

struct Student{char *num;char *name;char *sex;int age;double score;char *addr;
};

使用结构体

声明结构体变量

你可以像声明其他类型的变量一样声明结构体变量。

struct Student stu1;

或者使用typedef为结构体类型定义一个新名字,这样就可以像使用基本数据类型一样使用结构体了。

typedef struct Student{char *num;char *name;char *sex;int age;double score;char *addr;
}Student;Student stu1;
初始化结构体变量

结构体变量可以在声明时初始化。

struct Student stu1 = {"001","李红","女",22,99.9,"云南"};

或者使用typedef定义的类型:

Student stu1 = {"001","李红","女",22,99.9,"云南"};

或者单独进行初始化:

stu1.num = "001";
stu1.name = "李红";
stu1.sex = "女";
stu1.age = 22;
stu1.score = 99.9;
stu1.addr = "云南";
访问结构体成员

结构体成员的访问使用.运算符(对于结构体变量)或->运算符(对于指向结构体的指针)。

// 假设我们已经有了一个Student类型的变量stu1  
printf("姓名: %s\n", stu1.name);  
printf("年龄: %d\n", stu1.age);  // 如果我们有一个指向Student的指针  
Student *pStu= &stu1;  
printf("成绩: %.2f\n", pStu->score);  
printf("地址: %s\n", pStu->addr);

总结

结构体是C语言中处理复杂数据的有效方式,它们允许你将相关的数据项组合在一起,并通过一个统一的接口进行访问和操作。通过使用结构体,你可以编写更清晰、更易于维护的代码。

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

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

相关文章

回调函数简易笔记

定义 回调函数:用户手动定义了,但是没有手动调用,最终这个方法被系统/库/框架进行调用了… 举例 C语言 函数指针,主要有两个用途. 作为回调函数实现转移表 降低代码的复杂程度 java 数据结构 优先级队列(堆) 必须先定义好对象的"比较规则" Comparable compare…

2836. 在传球游戏中最大化函数值

Powered by:NEFU AB-IN Link 文章目录 2836. 在传球游戏中最大化函数值题意思路代码 2836. 在传球游戏中最大化函数值 题意 给你一个长度为 n 下标从 0 开始的整数数组 receiver 和一个整数 k 。 总共有 n 名玩家,玩家 编号 互不相同,且为 [0, n - 1…

韦东山嵌入式linux系列-异常与中断的概念及处理流程

1 中断的引入 一些概念: 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运…

RuoYi-Vue-Plus(动态添加移除数据源)

一、添加数据 private final DynamicRoutingDataSource dynamicRoutingDataSource;private final DefaultDataSourceCreator dataSourceCreator;//添加一个dynamic的数据源@GetMapping("createDynamic")public void createDynamic() {DataSourceProperty property =…

数据结构第二讲:顺序表

数据结构第二讲:顺序表 1.线性表2.什么是顺序表3. 静态顺序表4.动态顺序表4.1顺序表基础4.2顺序表的初始化4.3顺序表的销毁4.4顺序表的尾插4.5顺序表的头插4.6顺序表的尾删4.7顺序表的头删4.8顺序表在指定位置之前插入数据4.9顺序表删除指定位置的数据4.10顺序表查找…

JNPF全新V5.0版本!重磅升级——全局优化篇

尊敬的JNPF用户们: 我们非常高兴地宣布,经过团队数月的辛勤努力和不断的技术创新,JNPF快速开发平台终于迎来了里程碑式的全新升级——V5.0版本!这一版本的更新发布,不仅代表着我们技术实力的进一步提升,是…

Visual stdio code 运行C项目环境搭建

参考 [1]VS Code 配置 C/C 编程运行环境(保姆级教程)_visual studio code c配置-CSDN博客 [2]最新VS code配置C/C环境(tasks.json, launch.json,c_cpp_properties.json)及运行多个文件、配置Cmake_vscode launch.json如何配置-CSDN博客 先装visual stdi…

【高频面试题】java实现堆排序算法

目录 1.堆排序算法原理 1)构建初始堆 2)堆调整与排序 3)时间复杂度 2.java代码实现(可运行) 1.堆排序算法原理 1)构建初始堆 将待排序的数组元素构建成一个最大堆(或最小堆) …

谷歌搜索提取工具

谷歌搜索提取工具是指能够帮助用户从谷歌搜索引擎中提取所需信息的工具或插件。这些工具通常具有强大的数据抓取和分析能力&#xff0c;能够自动化地收集和处理搜索结果中的数据&#xff0c;从而为用户提供更加便捷和高效的信息获取方式。文本介绍专业工具<大镜山谷歌搜索大…

了解LR(逻辑回归)一

逻辑回归&#xff1a;一种强大的分类模型 逻辑回归&#xff08;Logistic Regression&#xff0c;简称LR&#xff09;是一种在统计学和机器学习中广泛应用的分类模型&#xff0c;尽管其名称中包含“回归”二字&#xff0c;但实际上它主要用于处理分类问题&#xff0c;特别是二分…

大模型深度神经网络(Deep Neural Network, DNN)

大模型深度神经网络&#xff08;Deep Neural Network, DNN&#xff09;是一种复杂的机器学习模型&#xff0c;其特点在于包含多个隐藏层&#xff0c;从而赋予模型强大的非线性表达能力和对复杂数据模式的学习能力。以下是对大模型DNN的详细介绍&#xff1a; 一、基本概念 深度…

el-table列的显示与隐藏

需求&#xff1a;实现 表字段的显示与隐藏。效果图 代码实现 写在前面 首先 我部分字段有自定义的排序逻辑&#xff0c;和默认值或者 数据的计算 所以是不能简单的使用 v-for 循环column 。然后 我需要默认展示一部分字段&#xff0c;并且 当表无数据时 提示不能 显示隐藏 …

Flink-CDC解析(第47天)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. CDC 概述1.1 什么是CDC&#xff1f;1.2 CDC的实现机制1) 基于主动查询的 CDC&#xff1a;2) 基于事件接收CDC&#xff1a; 前言 本文主要概述了Flink-CDC. …

双笼转子三相感应电动机的瞬态分析(3):定子绕组短接制动过程仿真分析

目录: 1. 概述 2. 定子绕组短接制动时端电压约束条件 3. 定子绕组短接制动的仿真研究 4. 结论 5. 参考文献 1.概述 制动是电机传动系统的重要问题之一,在工业生产中为了提高效率,许多生产机械都要求快速制动,实现准确停车,因此,对各种制动方法进行深入研究具有重要的…

人工智能驱动的光学检测技术可阻止假冒芯片

欢迎关注GZH《光场视觉》 在过去的60年里&#xff0c;半导体行业已经蓬勃发展&#xff0c;成为了一个价值5000亿美元的全球市场。然而&#xff0c;这个行业正面临着两大挑战&#xff1a;新芯片的严重短缺和假冒芯片的激增。这两个问题不仅带来了巨大的故障风险&#xff0c;还导…

idea启动项目报:the command line via JAR manifest or via a classpath file and rerun.

解决方案 1.打开Edit Configurations&#xff0c;进去编辑&#xff0c;如下&#xff1a; 笔记配置 2.选择Modfiy options,点击Shorten command line 3.在新增的Shorten command line选项中选择JAR manifest或classpath file 4.点击保存后即可

RK3588+MIPI+GMSL+AI摄像机:自动车载4/8通道GMSL采集/边缘计算盒解决方案

RK3588作为目前市面能买到的最强国产SOC&#xff0c;有强大的硬件配置。在智能汽车飞速发展&#xff0c;对图像数据矿场要求越来越多的环境下&#xff0c;如何高效采集数据&#xff0c;或者运行AI应用&#xff0c;成为刚需。 推出的4/8通道GMSL采集/边缘计算盒产品满足这些需求…

FastAPI 请求和响应

FastAPI 请求和响应 FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Python 3.6+ 类型提示一起使用。它基于标准 Python 类型提示,使得开发过程既快速又简单。在 FastAPI 中,请求和响应的处理是非常直观和高效的。本文将详细介绍 FastAPI 中的请求和响应…

240727.学习日志——《大话数据结构》学习总结

课程介绍 《大话数据结构》&#xff08;溢彩加强版&#xff09;——程杰 著 课程目录 第 1 章 数据结构绪论 第 2 章 算法 第 3 章 线性表 第 4 章 栈与队列 第 5 章 串 第 6 章 树 第 7 章 图 第 8 章 查找 第 9 章 排序 课程笔记 https://www.yuque.com/u43365522/huqw7…

第五十一天 第十一章:图论part02 99.岛屿数量 深搜 99.岛屿数量 广搜 100.岛屿的最大面积

99.岛屿数量 深搜 其实就是求连通块的数量&#xff0c;理解两个容器的作用。 grid表示该位置是否为岛屿&#xff0c;vis表示该位置是否被标记过&#xff08;遇到一个没有遍历过的节点陆地&#xff0c;计数器就加一&#xff0c;然后把该节点陆地所能遍历到的陆地都标记上。&…