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

08:结构体

结构体

  • 1、为什么需要结构体
  • 2、如何定义结构体
  • 3、怎么使用结构体变量
    • 3.1、赋值和初始化
    • 3.2、结构体变量的输出

1、为什么需要结构体

为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。什么叫结构体
把一些基本类型数据组合在一起形成的一个新的数据类型,这个叫做结构体(复合数据类型)。
列如:

#include <stdio.h>struct Student//结构体,定义了一个Student的数据类型。由int,float,char类型组成
{int age;float score;char sex;
};//逗号不能省int main (void)
{struct Student st = {15, 66.6, 'F'};//给Student类型命名。return 0;
}

在这里插入图片描述

2、如何定义结构体

第一种方式:如上面的例子
第二种方式:

#include <stdio.h>struct Student
{int age;float score;char sex;
}st;//直接在这里定义数据类型的名字int main (void)
{struct Student st = {15, 66.6, 'F'};return 0;
}

推荐使用第一种方式。

3、怎么使用结构体变量

3.1、赋值和初始化

赋值:

 第一种:struct Student st = {15, 66.6, 'F'};第二种:struct Student st;st.age = 15;st.score = 66.6;st.sex = 'F';

3.2、结构体变量的输出

第一种:

printf("%d,%f,%c\n",st.age,st.score,st.sex);

第二种:

struct Student* pst = &st;
printf("%d,%f,%c",pst->age,pst->score,pst->sex);

定义一个指针变量pst,用来存放Student数据类型的地址。
pst->age等价于(*pst).age ,也等价于st.age(pst所指向的那个结构体变量中的age这个成员)

代码

/*通过函数对结构体变量的输入和输出*/	
#include <stdio.h>
#include <string.h>//strcpy使用的声明void StudentInput(struct Student* pstu);
void StudentOutput(struct Student st);struct Student
{int age;float score;char name[100];
};int main (void)
{struct Student st;StudentInput(&st);StudentOutput(st);return 0;
}void StudentInput(struct Student* pstu)
{(*pstu).age = 16;pstu->score = 66.4f;strcpy(pstu->name,"李四");}void StudentOutput(struct Student st)
{printf("%d,%f,%s\n",st.age,st.score,st.name);
}

ok,学到这里,我们对C语言也算有了基本的了解。其中还有很多的小细节还需要不断的学习进行丰富

相关文章:

08:结构体

结构体 1、为什么需要结构体2、如何定义结构体3、怎么使用结构体变量3.1、赋值和初始化3.2、结构体变量的输出 1、为什么需要结构体 为了表示一些复杂的事物&#xff0c;而普通的基本类型无法满足实际要求。什么叫结构体 把一些基本类型数据组合在一起形成的一个新的数据类型&…...

喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号

6月6日&#xff0c;由中共厦门市委网络安全和信息化委员会办公室&#xff08;以下简称“厦门市委网信办”&#xff09;主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 会上&#xff0c;安全狗…...

android里面json操作

1.读取assets下面xzhd/aikit/pck.json String json = null; try { InputStream is = activity.getAssets().open(aikitPathInData+"xzhd/aikit/pck.json"); int size = is.available(); byte[] buffer = new byte…...

MATLAB的.m文件与Python的.py文件:比较与互参

simulink MATLAB的.m文件与Python的.py文件&#xff1a;比较与互参相似之处**1. 基本结构****2. 执行逻辑****3. 可读性和维护性** 差异性**1. 语法特性****2. 性能和应用****3. 开发环境** 互相学习的可能性结论 MATLAB的.m文件与Python的.py文件&#xff1a;比较与互参 在编…...

武汉星起航:自运营团队精准把握亚马逊红利,引领跨境电商新潮流

在全球化的浪潮下&#xff0c;跨境电商行业蓬勃发展&#xff0c;为众多企业带来了前所未有的机遇。武汉星起航电子商务有限公司便是其中的佼佼者&#xff0c;其自运营团队凭借对亚马逊平台的深入了解和丰富的运营经验&#xff0c;成功抓住了亚马逊的流量红利&#xff0c;为公司…...

嵌入式计算器模块实现

嵌入式计算器模块规划 计算器混合算法解析 上面我们的算法理论已经完善, 我们只用给一个混合运算式, 计算器就可以帮助我们计算出结果. 但是存在一个痛点, 每次计算算式,都要重新编译程序, 所以我们想到了, 利用单片机, 读取用户输入的按键, 组成算式, 输入给机器, 这样我们就…...

tomcat定时重启

Tomcat定时重启&#xff08;linux&#xff09; 1. 编写脚本 在tomcat的bin目录下&#xff0c;使用vim restart.sh&#xff0c;编写restart.sh脚本&#xff0c;插入一下内容&#xff0c;最后并保存&#xff01; #!/bin/bash# 初始化全局环境变量 . /etc/profilecd /usr/loca…...

构建LangChain应用程序的示例代码:48、如何使用非文本生成工具创建多模态代理

多模态输出&#xff1a;图像和文本 这个示例展示了如何使用非文本生成工具来创建多模态代理。 本例仅限于文本和图像输出&#xff0c;并使用UUID在工具和代理之间传输内容。 本例使用Steamship生成和存储生成的图像。生成的内容默认受到身份验证保护。 您可以在这里获取Ste…...

【笔记】记录一次全新的Java项目部署过程

记录一次全新的Java项目部署过程 环境:CentOS7一、初始环境准备 yum install wget -y yum install vim -y yum install net-tools -y mkdir /data mkdir /data/html mkdir /data/backend一、安装JDK 17 安装JDK17# 下载rpm wget https://download.oracle.com/java/17/latest/…...

达梦数据库系列—14. 表空间的备份和还原

目录 1、表空间备份 2、表空间还原 3、表空间恢复 4、增量还原恢复 1、表空间备份 表空间只能在联机状态下进行备份。 BACKUP TABLESPACE TBS BACKUPSET /dm/backup/dm_bak/ts_bak_01; 完全备份 BACKUP TABLESPACE TBS FULL BACKUPSET /dm/backup/dm_bak/ts_full_bak_01…...

奔驰G350升级原厂自适应悬挂系统有哪些作用

奔驰 G350 升级自适应悬挂系统后&#xff0c;可根据行车路况自动调整悬架高度和弹性&#xff0c;从而提升驾乘的舒适性和稳定性。 这套系统的具体功能包括&#xff1a; • 多种模式选择&#xff1a;一般有舒适、弯道、运动及越野等模式。例如&#xff0c;弯道模式在过弯时能为…...

一个启动脚本例子

一、全部代码 #!/bin/bash DATE$(date %Y%m%d)SOURCE"abc.jar" TARGET"backup/abc.jar.jew.$DATE"if [ -f "$SOURCE" ]; thencp "$SOURCE" "$TARGET" firm -f abc.jar mv abc_1.jar abc.jarpidNumps -ef | grep $SOURCE |…...

grpc学习golang版( 六、服务器流式传输 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、拷贝任意文件进项目四、编写serve…...

ubuntu语音库ALSA报错具体原因

在ubuntu中使用pyaudio或portaudio时总会有下面的提示&#xff0c;不胜其烦。 ALSA lib pcm_dsnoop.c:612:(snd_pcm_dsnoop_open) unable to open slave ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unkn…...

Java高级重点知识点-17-异常

文章目录 异常异常处理自定义异常 异常 指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。Java处 理异常的方式是中断处理。 异常体系 异常的根类是 java.lang.Throwable&#xff0c;&#xff0c;其下有两个子类&#xff1a;ja…...

DM达梦数据库函数分析(与mysql对应函数区别及用法分析)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝💝💝如有需要请大家订阅我的专栏【数据库系列】哟!我会定期更新相关系列的文章 💝💝💝关注!关注!!请…...

ROS2用c++开发参数节点通信

1.创建节点 cd chapt4/chapt4_ws/ ros2 pkg create example_parameters_rclcpp --build-type ament_cmake --dependencies rclcpp --destination-directory src --node-name parameters_basic --maintainer-name "joe" --maintainer-email "1027038527qq.com&…...

docker 部署jitsi meet

1. 部署环境&#xff1a; 1.1 vm 虚拟机 安装的 centos 7 1.2 centos7安装docker 和 docker-compose 2.docker命令 官网部署文档地址&#xff1a;&#xff08;文档地址有可能失效&#xff09; Self-Hosting Guide - Docker | Jitsi Meet 2.1Download and extract the late…...

【Pytest自动化测试详解】

目录 一、前言pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要特点&#xff1a; 二、pytest安装 2.1、安装 pip install -U pytest 2.2、验证安装 pytest --version # 会展示当前已安装版本 2.3、pytest文档 官方文档&#xff1a;https:…...

6-14题连接 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例子2.6. 使用唯一标识码替换员工ID2.7- 产品销售分析 I2.8 - 进店却未进行过交易的顾客2.9 - 上升的温度2.10 - 每台机器的进程平均运行时间2.11- 员工奖金2.12-学生们参加各科测试的次数2.13-至少有5名直接下属的经理2.14 - 确认率 1. 相关知识点 left …...

Termux安装Linux总失败?可能是你的安卓版本太老了!手把手解决apt update报错

Termux在老旧安卓设备上的终极解决方案&#xff1a;从原理到实践 你是否也曾在抽屉深处翻出一台尘封多年的安卓设备&#xff0c;满心欢喜地想要通过Termux让它重获新生&#xff0c;却在apt update的报错信息前铩羽而归&#xff1f;这并非个例——据统计&#xff0c;全球仍有超过…...

解放你的文档下载焦虑:一键保存30+平台内容的神器

解放你的文档下载焦虑&#xff1a;一键保存30平台内容的神器 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解决您…...

腾讯 Marvis 操作系统层 AI 助手内测:多场景显身手,“AI 打工人”雏形初现但仍待打磨

多场景显身手近日&#xff0c;腾讯开始内测一款名为 Marvis&#xff08;马维斯&#xff09;的操作系统层个人 AI 助手。这一 AI 助手通过多个 Agent 的协作完成 App 操作、EXE 操作、电脑操作、文件管理、文档生成以及各种复杂任务&#xff0c;24 小时持续在线&#xff0c;并支…...

FanControl深度实战指南:5分钟精通Windows风扇精准控制

FanControl深度实战指南&#xff1a;5分钟精通Windows风扇精准控制 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

构建智能增量更新插件:Softer-Delta算法与工程实践

1. 项目概述与核心价值最近在折腾一些自动化工作流&#xff0c;发现很多场景下&#xff0c;我们都需要一个能“聪明”地处理文件差异、生成补丁&#xff0c;并且能无缝集成到现有工具链里的插件。这让我想起了之前用过的一个叫pear-plugin的工具&#xff0c;它挂在Softer-delta…...

Horos:免费开源医学影像软件,3D医疗图像处理的终极指南

Horos&#xff1a;免费开源医学影像软件&#xff0c;3D医疗图像处理的终极指南 【免费下载链接】horos Horos™ is a free, open source medical image viewer. The goal of the Horos Project is to develop a fully functional, 64-bit medical image viewer for OS X. Horos…...

Cesium实战:手把手教你用JavaScript实现5个酷炫的3D地图特效(雷达扫描/淹没分析/动态绘制)

Cesium实战&#xff1a;手把手教你用JavaScript实现5个酷炫的3D地图特效&#xff08;雷达扫描/淹没分析/动态绘制&#xff09; 在三维地理信息可视化领域&#xff0c;Cesium凭借其强大的WebGL渲染能力和灵活的JavaScript API&#xff0c;已成为开发者构建沉浸式空间应用的首选引…...

CircuitPython驱动NeoPixel与DotStar:从原理到炫彩动画实战

1. 项目概述与核心价值在嵌入式开发和物联网项目中&#xff0c;灯光不仅仅是简单的“亮”与“灭”&#xff0c;它更是设备与用户沟通的语言&#xff0c;是项目灵魂的直观体现。无论是智能家居的氛围灯带、可穿戴设备的动态提示&#xff0c;还是艺术装置的视觉表达&#xff0c;可…...

Live Server 5分钟完全指南:如何在VSCode中实现浏览器实时预览?

Live Server 5分钟完全指南&#xff1a;如何在VSCode中实现浏览器实时预览&#xff1f; 【免费下载链接】vscode-live-server Launch a development local Server with live reload feature for static & dynamic pages. 项目地址: https://gitcode.com/gh_mirrors/vs/vs…...

DeepSeek-Coder-V2开源部署实战:打破闭源模型垄断的代码智能解决方案

DeepSeek-Coder-V2开源部署实战&#xff1a;打破闭源模型垄断的代码智能解决方案 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-C…...