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

【C语言】结构体详解(一)

目录

1、什么是结构体?

2、结构体成分

3、结构体变量的定义与初始化

3.1、结构体变量的三种定义方式

3.2、结构体变量的初始化

4、结构体成员的访问(两种方式)

4.1、直接访问

4.2、间接访问

5、结构的特殊声明

5.1、不完全声明(匿名)



正文

1、什么是结构体?

先引入我们所熟悉的类型:char、short、int、long等等,这些是C语言提供的内置类型,但我们用单一的内置类型无法描述复杂的对象。

如,描述一个学生,需要描述其名字、年龄、性别、学号等;此时用单一类型是不够的。

为了解决这个问题,C语言增加了结构体这种自定义的数据类型,让程序员可以创造出合适的类型。

定义:

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针、或其他结构体。

结构体是用来描述一个复杂对象的,可包含多个属性。

2、结构体成分

请看一下代码:

struct student
{char name[20];//姓名int age;//年龄char sex[5];//性别char id[20];//学号
};

一个结构体中包含:结构体关键字、名字、成员、分号

3、 结构体变量的定义与初始化

3.1、结构体变量的三种定义方式

3.2、结构体变量的初始化

  • 按照结构体成员的顺序初始化

顾名思义,顺序初始化是按照结构体成员的顺序进行的初始化。

  • 乱序初始化

不按照结构体成员的顺序进行初始化,此时需要点明初始化的成员,如下:

.age 代表将年龄初始化为19 

.sex 代表将性别初始化为男

……

4、结构体成员的访问(两种方式)

结构成员访问操作符:.     ->

4.1、直接访问

通过点操作符(.)进行访问

使用方式:结构体变量.成员名

s5.name   :找到结构体变量s5中的成员name 

s5.age   :找到结构体变量s5中的成员age

……

 4.2、间接访问

通过箭头操作符(->)进行访问

使用方式:结构体指针->成员名

定义一个指向结构体的指针,p指向结构体变量s5

p->name  : 相当于 (*p).name

 p->age  : 相当于 (*p).age

5、结构的特殊声明

5.1、不完全声明(匿名)

 匿名的结构体类型,如果没有对结构体类型重命名的话,基本上只能使用一次。

相关文章:

【C语言】结构体详解(一)

目录 1、什么是结构体? 2、结构体成分 3、结构体变量的定义与初始化 3.1、结构体变量的三种定义方式 3.2、结构体变量的初始化 4、结构体成员的访问(两种方式) 4.1、直接访问 4.2、间接访问 5、结构的特殊声明 5.1、不完全声明(匿…...

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion)

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion) 前言1、基础对比Stable Diffusion(SD)SD界面安装与使用SD Midjouney(MJ) 2、硬件与运行要求对比Stable Diffusion硬件要求内存硬盘显卡 Midjo…...

【蓝桥杯】矩阵快速幂

一.快速幂概述 1.引例 1)题目描述: 求A^B的最后三位数表示的整数,A^B表示:A的B次方。 2)思路: 一般的思路是:求出A的B次幂,再取结果的最后三位数。但是由于计算机能够表示的数字…...

C语言使用STM32开发板手搓高端家居洗衣机

目录 概要 成品效果 背景概述 1.开发环境 2.主要传感器。 技术细节 1. 用户如何知道选择了何种功能 2.启动后如何进行洗衣 3.如何将洗衣机状态上传至服务器并通过APP查看 4.洗衣过程、可燃气检测、OLED屏显示、服务器通信如何并发进行 小结 概要 本文章主要是讲解如…...

【Hello,PyQt】QTextEdit和QSplider

PyQt5 是一个强大的Python库,用于创建图形用户界面(GUI)。其中,QTextEdit 控件作为一个灵活多用的组件,常用于显示和编辑多行文本内容,支持丰富的格式设置和文本操作功能。另外,QSlider 控件是一…...

【力扣】191.位 1 的个数、485.最大连续 1 的个数

191.位 1 的个数 题目描述 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。 示例 1: 输入:n 11 输出&#xff1…...

蓝桥杯 java 承压计算

题目: 思路: 1:其中的数字代表金属块的重量(计量单位较大) 说明每个数字后面不一定有多少个0 2:假设每块原料的重量都十分精确地平均落在下方的两个金属块上,最后,所有的金属块的重量都严格精确地平分落在最底层的电子…...

leetcode268-Missing Number

这道题目要求缺失的数字,一般解决数组的问题,要么往排序数组,要么往双指针遍历这些方向上靠,要么往异或方向上靠,总之落点无非就只有这几个。我们要求缺失的数字,可以依次让1~n和数组元素进行异…...

【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)

书接上文:创建一个项目 在经过cmakemsbuild顺利生成动态库之后,考虑到我一个项目可能会生成多个动态库,它们分散在build内的不同文件夹,我希望能将它们收拢到一个文件夹下,并将其回传到svn。 一、动态库移位—cmake实…...

数据结构·二叉树(2)

目录 1 堆的概念 2 堆的实现 2.1 堆的初始化和销毁 2.2 获取堆顶数据和堆的判空 2.3 堆的向上调整算法 2.4 堆的向下调整算法 2.4 堆的插入 2.5 删除堆顶数据 2.6 建堆 3 建堆的时间复杂度 3.1 向上建堆的时间复杂度 3.2向下建堆的时间复杂度 4 堆的排序 前言&…...

MATLAB算法实战应用案例精讲-【毕业季论文专用】人工智能视觉检测技术及其在实际应用中的挑战与前景

目录 摘要: 第一章:引言 1.1 研究背景 1.2 研究目的与意义...

Linux虚拟机环境搭建spark

Linux环境搭建Spark分为两个版本,分别是Scala版本和Python版本。 一、 安装Pyspark 本环境以 Python 环境为例。 1、下载spark 下载网址:https://archive.apache.org/dist/spark 下载安装包:根据自己环境选择合适版本,本环境…...

STL的string容器

string基本概念 string是C风格的字符串,本质上是一个类。 string 和 char* 的区别 char* 是一个指针; string是一个类,内部封装了 char* ,用来管理字符串,是一个 char* 型的容器。 特点 string内部封装了很多成员…...

半导体工艺技术

完整内容点击:【半导体工艺技术】...

acwing算法提高之图论--单源最短路的扩展应用

目录 1 介绍2 训练 1 介绍 本专题用来记录使用。。。。 2 训练 题目1&#xff1a;1137选择最佳线路 C代码如下&#xff0c; #include <iostream> #include <cstring> #include <algorithm> #include <queue>using namespace std;const int N 101…...

SQLServer数据库使用Function实现根据字段内容的拼音首字母进行数据查询

实现SQL首字母查询分两步&#xff0c;第一步建Function&#xff0c;第二步引用新建的Function。 1. 首先需要自定义一个查询的Function&#xff0c;详细SQL如下&#xff1a; ALTER function [dbo].[GetDataByPY](str nvarchar(4000)) returns nvarchar(4000) as begin decla…...

Linux——信号概念与信号产生方式

目录 一、概念 二、前台进程与后台进程 1.ctrlc 2.ctrlz 三、信号的产生方式 1.键盘输入产生信号 2.系统调用发送信号 2.1 kill()函数 2.2 raise()函数 2.3 abort()函数 3.异常导致信号产生 3.1 除0异常 3.2 段错误异常 4.软件条件产生信号 4.1 管道 4.2 闹钟…...

赋值语句还能当判断条件?涨芝士了!

赋值和条件看似是C语言中毫不相关的两个概念&#xff0c;虽然实际过程中我猜测不会有太多这种不太符合常理的情况出现&#xff0c;但是现在在学习的过程中&#xff0c;为了出题而出题总是会整出一些花活出来.....这很难不让人联想起高中时一些大佬为了彰显自己的数学天赋而自己…...

数据结构 - 算法效率|时间复杂度|空间复杂度

目录 1.算法效率 2.时间复杂度 2.1定义 2.2大O渐近表示法 2.3常见时间复杂度计算举例 3.空间复杂度 3.1定义 3.2常见空间复杂度计算举例 1.算法效率 算法的效率常用算法复杂度来衡量&#xff0c;算法复杂度描述了算法在输入数据规模变化时&#xff0c;其运行时间和空间…...

接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送

接口自动化之 Jenkins Allure报告生成 企微消息通知推送 在jenkins上部署好项目&#xff0c;构建成功后&#xff0c;希望可以把生成的报告&#xff0c;以及结果统计发送至企微。 效果图&#xff1a; 实现如下。 1、生成allure报告 a. 首先在Jenkins插件管理中&#x…...

网络虚拟化如何应对100G性能挑战:从SDN/NFV到DPDK与智能网卡的演进

1. 网络虚拟化与100G浪潮&#xff1a;一场正在发生的架构革命如果你在2015年前后从事网络或云计算相关的工作&#xff0c;大概会对一个词印象深刻&#xff1a;100G。当时&#xff0c;行业媒体和厂商都在热烈讨论一个预测——到2018年&#xff0c;100G将成为网络设备&#xff0c…...

深度解析20辆电动汽车29个月真实充电数据:电池容量衰减评估与健康监测关键技术

深度解析20辆电动汽车29个月真实充电数据&#xff1a;电池容量衰减评估与健康监测关键技术 【免费下载链接】battery-charging-data-of-on-road-electric-vehicles This repository is transfered from the personal account of Dr. Zhognwei Deng (Michael Teng) 项目地址: …...

3分钟搞定抖音无水印下载:从新手到高手的完整指南

3分钟搞定抖音无水印下载&#xff1a;从新手到高手的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

终极指南:如何通过AKShare金融数据接口库快速获取全球交易所数据

终极指南&#xff1a;如何通过AKShare金融数据接口库快速获取全球交易所数据 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirr…...

Pycharm更新骨架卡死C盘?罪魁祸首是torch-geometric的四个依赖库

PyCharm更新骨架卡死C盘&#xff1f;深入解析torch-geometric依赖库的存储陷阱 当你在PyCharm中启动一个包含torch-geometric的项目时&#xff0c;是否经历过C盘空间被神秘吞噬的噩梦&#xff1f;那个名为"Updating skeletons"的后台进程&#xff0c;本应是IDE的贴心…...

汉高2026年第一季度实现稳健有机销售增长

美通社消息&#xff1a;汉高公布了2026年第一季度的销售额&#xff0c;约为50亿欧元&#xff0c;有机(即根据汇率和收购/撤资进行调整后)销售额实现1.7%的稳健增长。两大业务部门均拉动业绩增长&#xff0c;销量与价格均实现正向增长。第一季度欧洲地区的有机销售下降3.4%。在印…...

嵌入式处理器IP选型指南:从ARM到RISC-V的权衡与实战

1. 从一场早餐会聊起&#xff1a;为什么32位处理器IP依然是嵌入式开发的硬通货最近在整理资料时&#xff0c;翻到一篇十多年前的老新闻&#xff0c;说的是IP供应商CAST要在DesignCon 2012上办一场免费的早餐研讨会&#xff0c;主题是他们新推出的BA22 32位处理器IP核。新闻里笔…...

从专利数量到质量:从业者深度解析专利评估与策略

1. 从“专利数量”到“专利质量”&#xff1a;一个从业者的深度观察 最近和几位做硬件的朋友聊天&#xff0c;大家不约而同地提到了一个现象&#xff1a;现在无论是看行业报告&#xff0c;还是和国内供应商、合作伙伴交流&#xff0c;“专利”这个词出现的频率越来越高。尤其是…...

通过稳定的路由与容灾机制保障关键业务中的AI服务连续性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过稳定的路由与容灾机制保障关键业务中的AI服务连续性 在将大模型能力集成到关键业务流程时&#xff0c;服务的连续性与可靠性是…...

迪士尼收购卢卡斯影业:顶级IP运营与商业并购的教科书案例

1. 一笔改变好莱坞格局的交易&#xff1a;迪士尼收购卢卡斯影业深度解析2012年10月30日&#xff0c;一则新闻震动了全球娱乐产业和无数影迷的心&#xff1a;华特迪士尼公司宣布&#xff0c;将以约40.5亿美元的价格&#xff0c;收购乔治卢卡斯创立的卢卡斯影业及其旗下最核心的资…...