码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【初学者入门C语言】之结构体(十一)


    个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

    💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 

     特别标注:该博主将长期更新c语言内容,初学c语言的友友们,订阅我的《初学者入门C语言》专栏初学者入门C语言_天寒雨落的博客-CSDN博客,关注博主不迷路!

    目录

    前言

    结构体

    结构体的定义

    声明结构体变量

    初始化结构变量

    访问结构体成员

    结构体变量赋值

    结构体嵌套


    前言

    数组只能储存相同类型的元素,而当我们储存有关系的不同类型的元素就需要用到结构体了。结构体和结构体变量的关系类似与类型与普通变量的关系。

     

    结构体

    结构体的定义

    一般格式

    1. struct 结构名称{
    2. 成员变量列表;
    3. };

    特别注意:花括号后的分号一定不要忘记写了,结构的定义是一个完整的语句,结构的定义放在主函数的上面即头文件中

    举例

    1. struct person{
    2.         char name[5];
    3.         int age;
    4. }

    上面定义了一个结构person,person可以声明person类型的结构体变量,每个person型结构体变量都包括name、age这两个数据成员。

    声明结构体变量

    在定义的时候声明:

    1. struct person{
    2.         char name[5];
    3.         int age;
    4. }p1,p2;

    在后面单独声明:

    struct person p1;

    使用typedef struct:

    1. typedef struct person{
    2.         char name[5];
    3.         int age;
    4. };
    5. person p1;

    使用typedef后,后面声明是省略了struct

    初始化结构变量

    在声明结构变量的同时,进行变量的初始化:

    1. struct person {
    2. char name[10];
    3. int age;
    4. } p1 = {"zhangsan", 10};

    在后面进行变量的初始化:

    struct person p1={"zhangsan",10};

    访问结构体成员

    声明一个结构体变量后,可以使用成员操作符(.)来访问各个成员

    举例

    输出张三的年龄

    代码:

    1. #include "stdio.h"
    2. struct person {
    3. char name[10];
    4. int age;
    5. } p1 = {"zhangsan", 10};
    6. int main() {
    7. printf("%d", p1.age);
    8. return 0;
    9. }

    执行结果:

    结构体变量赋值

     将结构体变量p1的数据赋给结构体变量p2

    代码:

    1. #include "stdio.h"
    2. struct person {
    3. char name[10];
    4. int age;
    5. } p1 = {"zhangsan", 10};
    6. int main() {
    7. struct person p2;
    8. p2 = p1;
    9. printf("%s\n%d", p2.name, p2.age);
    10. return 0;
    11. }

    执行结果

     

    结构体嵌套

    某个结构体里的数据成员中又是一个结构体变量

    举例

    定义一个student结构体里面嵌套一个score结构体

    代码:

    1. #include "stdio.h"
    2. struct student {
    3. char name[10];
    4. int age;
    5. //结构体scorestruct的定义
    6. struct scorestruct {
    7. int math;
    8. int English;
    9. } score;//声明结构体变量score
    10. };
    11. int main() {
    12. struct student s1 = {"zhangsan", 18, {98, 84}};
    13. printf("姓名:%s\n年龄:%d\n英语成绩:%d\n数学成绩:%d", s1.name, s1.age, s1.score.English, s1.score.math);
    14. return 0;
    15. }

    在结构体student定义结构体scorestruct同时声明结构体变量score,在初始值的时候{}里面放score里面的数据,再将其放进student的{},访问嵌套成员结构体的变量的为:结构体名1.结构体名2.成员变量,访问结构体的成员依旧是:结构体.成员变量

    执行结果:

    各位C语言的初学者有问题随时都可以问我,随时为您解惑!!!

    👍+✏️+⭐️是对博主最大的鼓励与支持!!!

  • 相关阅读:
    iOS苹果签名共享签名是什么以及如何获取?
    机器学习-保存模型并根据模型进行预测 python demo
    hutool处理excel时候空指针小记
    怎么停止正在进行的Windows更新?
    VS2022+CMAKE+OPENCV+QT+PCL安装及环境搭建
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java客户需求管理系统2v0d6
    Oracle实验五Sql语句
    设计模式-单例模式-注册式单例模式-枚举式单例模式和容器式单例模式在Java中的使用示例
    lnmp环境部署极简保姆级教程(nginx+php+mysql)
    【洛谷】P1828 [USACO3.2] 香甜的黄油 Sweet Butter (最短路)
  • 原文地址:https://blog.csdn.net/m0_67388084/article/details/127570920
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号