c语言--结构体

news2024/9/23 15:23:50

 前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

结构体概念简介

c语言数组是一些相同类型的数据的集合。

这个结构体就是一些可以是不同类型的集合。

比如描述班里的一个人,他可能需要名字(字符串),也需要年龄(整数)。

这种情况就需要用结构体。

结构体的定义

先声明,再定义

定义语法:

struct [结构体名称]{
    数据;
    数据;
    数据;
};

案例演示:

#include <stdio.h>

int main(void)
{
    struct student_info
    {
        char name[20];
        int age;
        int score;
    };
    struct student_info info = {"张三", 19, 100};
    printf("%s\n", info.name);
    info.age = 20;
    printf("%d\n", info.age);
}

同时声明和定义

定义语法:

#include <stdio.h>
#include <string.h>

struct student_info
{
    char name[20];
    int age;
    int score;
} info;

int main(void)
{
    strcpy(info.name, "张三");
    puts(info.name);
    info.age = 20;
    printf("%d\n", info.age);
}

结果演示:

typedef结构体起别名

typedef的用法

语法:

#include <stdio.h>
typedef int A;
int main(void)
{
    A num = 1;
    printf("%d", num);
}

结果

描述:

就是我们定义这个typedef int A;。

他的意思就是可以用A来表示int。

那么下面A num就相当于int num。

typedef结构体起名

或者我们换一下思路。

我们把int换成结构体,那么不就实现了给结构体换名了吗?

语法:

typedef struct 结构体名
{
    数据
    数据
} 新名称;

案例演示:

#include <stdio.h>
typedef struct sutdent
{
    int age;
    int score;
} student_info;

int main(void)
{
    student_info zhangsan;
    zhangsan.age = 18;
    zhangsan.score = 100;
    printf("%d", zhangsan.age);
}

结构体数组

描述:就是结构体中的数据类型是数组。

案例演示:

这是用数组作为结构体数据的写法案例。

#include <stdio.h>
#include <string.h>

struct class_score
{
    char name[20][10];
    int age[20];
};

int main(void)
{
    int a;
    struct class_score one_class = {{"张三", "李四", "王二麻"}, {18, 19, 19}};
    for (int i = 0; i <= 5; i++)
    {
        printf("姓名:");
        puts(one_class.name[i]);
        printf("年龄:%d\n", one_class.age[i]);
    }
}

结果如下:

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

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

相关文章

苹果手机备忘录共享到微信,为何显示不支持的类型

作为一名苹果手机用户&#xff0c;我深知其系统的流畅与便捷。然而&#xff0c;在日常使用中&#xff0c;我发现了一个令人不解的问题&#xff1a;为何苹果手机的原生备忘录无法直接分享到微信&#xff1f;每次当我尝试将备忘录里的内容共享给微信好友时&#xff0c;总会遇到“…

六西格玛培训的讲师应该具备哪些能力?

六西格玛培训的讲师作为专业知识的传授者和实践经验的分享者&#xff0c;其能力水平的高低直接决定了培训效果的好坏。那么&#xff0c;一个优秀的六西格玛培训讲师应该具备哪些能力呢&#xff1f;深圳天行健企业管理咨询公司解析如下&#xff1a; 首先&#xff0c;六西格玛培训…

AIGC行业的发展前景与市场需求

简介&#xff1a;探讨当前时机是否适合进入AIGC行业&#xff0c;考虑行业发展阶段和市场需求。 方向一&#xff1a;行业前景 AIGC&#xff08;人工智能生成内容&#xff09;行业是近年来随着人工智能技术的快速发展而兴起的一个新兴领域&#xff0c;它涉及到使用人工智能技术来…

R实验 随机变量及其分布

实验目的&#xff1a; 掌握常见几种离散性随机变量及其分布在R语言中对应的函数用法&#xff1b;掌握常见几种连续性随机变量及其分布在R语言中对应的函数用法&#xff1b;掌握统计量的定义及统计三大抽样分布在R语言中对应的函数用法。 实验内容&#xff1a; &#xff08;习题…

PyTorch的数据处理

&#x1f4a5;今天看一下 PyTorch数据通常的处理方法~ 一般我们会将dataset用来封装自己的数据集&#xff0c;dataloader用于读取数据 Dataset格式说明 &#x1f4ac;dataset定义了这个数据集的总长度&#xff0c;以及会返回哪些参数&#xff0c;模板&#xff1a; from tor…

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入!

解决方案&#xff1a; 我是form表单嵌套表格&#xff0c;里面的el-input输入框&#xff0c;输入第一个值的时候会突然失去焦点&#xff0c;需要再次点击输入框才能正常输入&#xff0c;原因是table的key值&#xff0c;需要改成正常的index即可&#xff0c;如果你是循环的&…

进化计算引领深度学习新纪元

《进化深度学习》介绍了进化计算(EC)&#xff0c;并为你提供了一套实用的技术工具&#xff0c;你可以在整个深度学习过程中应用这些技术。本书提供了遗传算法和进化计算方法在网络拓扑、生成模型、强化学习等方面的应用。通过交互式的Colab notebook使你有机会在探索过程中进行…

day15

第一题 1419. 数青蛙 本题主要是采用模拟的解题思路&#xff0c;用一个croak来模拟青蛙的叫声&#xff0c;在一堆字符串中来找到几个croak&#xff0c;并判断这是由几个青蛙叫的&#xff1b; 首先我们使用数组来模拟hash表&#xff0c;其次我们使用hash表来映射青蛙叫的字符中…

smart-link + STP的vlan映射 + monitor-link实现二层链路的负载均衡+主备切换

一、适用场景 1、保护原有投资&#xff0c;不浪费原有网络设备及链路的投资&#xff1b; 2、对高可靠、高可用要求的业务&#xff0c;链路中的设备、接头、线路故障时&#xff0c;毫秒级切换&#xff0c;不影响业务的运行&#xff1b; 3、使用华为、华三智能管理型的交换设备&…

香橙派 AIpro评测

一. 香橙派AIpro开箱 官网外观&#xff1a; ​ ​ 外观实测&#xff1a;做工精致&#xff0c;散热片有精致的金属感 ​ ​ 反面&#xff1a;由于加装了wifi蓝牙模块&#xff0c;如果需要做外壳&#xff0c;需要注意保护天线贴片。在树莓派pi5的前面一版&#xff0c;增加了wifi…

MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 论文总结

题目&#xff1a;MedSegDiff: Medical Image Segmentation&#xff08;图像分割&#xff09;with Diffusion Probabilistic Model&#xff08;扩散概率模型&#xff09; 论文&#xff08;MIDL会议&#xff09;&#xff1a;MedSegDiff: Medical Image Segmentation with Diffusi…

【数组】Leetcode 452. 用最少数量的箭引爆气球【中等】

用最少数量的箭引爆气球 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地…

Linux C++ Socket 套接字、select、poll、epoll 实例

文章目录 1. 概述2. TCP 网络编程实例2.1 服务器端2.2 客户端2.3 运行截图 3. I/O 模型3.1 阻塞式I/O模型3.2 非阻塞I/O模型3.3 I/O 复用模型3.4 信号驱动式I/O3.5 异步I/O模型 4. I/O复用之 select4.1 select 函数描述4.2 服务端代码4.3 客户端代码4.4 运行截图 5. I/O复用之 …

虚拟海外仓用什么系统最好?5个步骤帮你选出适合自己仓库的WMS系统

面对国际市场越来越大的仓储需求&#xff0c;虚拟海外仓的受众还是非常广泛的。不过很多经营虚拟海外仓的企业往往都会陷入管理混乱&#xff0c;低效的怪圈。 要想突破这个经营的瓶颈&#xff0c;快速发展企业&#xff0c;选择一个适合自己的海外仓WMS系统是个不错的选择。 1…

Java中Stack的使用详解

Stack是一种运算受限的线性表&#xff0c;其特点在于仅允许在表的一端&#xff08;即表尾&#xff09;进行插入和删除操作。这一端被称为栈顶&#xff0c;而相对的另一端则称为栈底。向一个栈插入新元素的操作称为进栈或入栈&#xff0c;它将新元素放到栈顶元素的上面&#xff…

昂达固态硬盘数据恢复方法:全面解析与操作指南

在数字化时代&#xff0c;数据已经成为我们生活和工作中不可或缺的一部分。而固态硬盘&#xff08;SSD&#xff09;由于其读写速度快、抗震性强等优点&#xff0c;慢慢取代了传统的机械硬盘&#xff0c;成为我们存储数据的主要选择。然而&#xff0c;即便再先进的存储设备&…

如何远程访问Redis?

远程访问Redis是一种常见的需求&#xff0c;特别是在分布式系统或跨地域网络中。通过远程访问&#xff0c;我们可以轻松地对远程的Redis数据库进行操作和管理。 天联保障数据安全 对于远程访问Redis的安全性问题&#xff0c;我们可以借助天联来保障数据的安全。天联是一种基于…

Oracle-修改用户名

1、项目背景 需要将导入一份最新的用户数据在tbl用户上&#xff0c;但需要将原来的tbl用户数据保留并能实现两个用户的比对。 2、解决思路 思路一&#xff1a;1&#xff09;新建用户tbl_feng,导入数据&#xff1b;2&#xff09;将两个用户换名称 3&#xff09;比对 思路二&…

STM32实现HAL库LED点灯

目录 一、相关环境 STM32CubeMX 介绍 安装下载 相关配置完善 尝试使用该软件&#xff0c;点亮LED灯 项目创建 代码示例 二、任务实现 1、使用HAL库方式完成LED灯的周期闪烁 要求1 项目创建 代码示例 要求2 项目创建 代码示例 2、使用仿真软件分析仪功能观察…

VS2022配合Qt与boost.asio实现一个TCP异步通信系统远程操作mysql数据库

上一篇博客我们通过boost.asio搭建了一个简单的异步服务器&#xff0c;但是那是基于命令行的&#xff0c;所有用起来还是相当枯燥的&#xff0c;这次我们配合Qt实现一个简陋的前端页面来控制后端mysql数据库中的表&#xff0c;实现添加密钥的功能(本次博客使用的boost版本是1.8…