码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • c语言-结构体-小白3小时总结


    c语言-结构体-小白3小时总结

    • 结构
      • 为什么需要结构体
      • 结构体的构建
      • 结构体的声明
      • 结构体数组的声明
      • 访问和赋值结构体数据
      • 访问和赋值结构体数组数据
      • 输入和输出结构体的数据
      • 结构别名
      • 初始化结构
      • 结构体数组初始化
      • 嵌套结构体
      • 结构的指针
      • 结构在函数中传递

    结构

    为什么需要结构体

    c语言后很多类型 比如 char short int double float long long

    再例如比较难的 数组 指针类型

    但是你会发现 这些类型都是定死的 就是说int 就是int 不能再放别的

    int[] 的数组中只能放 int 的数据

     char name[20]//姓名
     short sex//性别
     int weight//体重
     double height //身高
     //float long long  
    
    • 1
    • 2
    • 3
    • 4
    • 5

    但是这很明显 很难满足某些需求 例如人员信息 有身高int 有姓名char[] 有体重int…

    我们想要一种 能够直接把多种数据综合起来的数据结构

    于是就有了 struct{} 的结构

     struct {
       
         char name[20]//姓名
         short sex//性别
         int weight//体重
         double height //身高
     }
    这一大坨就是一个类型  和int 等价
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结构体的构建

    1.首先 需要struct关键词来声明
    2.需要 {
       }  包裹 里面存放这要存储的数据
    3.包裹的数据和正常的数据声明一样 比如姓名 char [20] 是一个char[]的字符串
    4.数据要有;结尾
    struct {
       
         char name[20];//姓名
         short sex;//性别
         int weight;//体重
         double height; //身高 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    结构体的声明

    例如 int a;  类型 名字  
    类型 名字
     struct {
       
         char name[20]//姓名
         short sex//性别
         int weight//体重
         double height //身高
     } people;
    //people 就是一个变量
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    结构体数组的声明

    和正常数组一样

    int a[];
    用struct 和int是等价的
     struct {
       
         char name[20]//姓名
         short sex//性别
         int weight//体重
         double height //身高
     } people[20];
    创建一个结构体的数组  里面的类型就是 struct
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    访问和赋值结构体数据

    通过 . 访问

    struct {
       
         char name[20]//姓名
         short sex//性别
         int weight//体重
         double height //身高
     } people;
    //获取
    people.name//获得people的name存放的值
    people.sex//获得people的sex存放的值
    people.weight//获得people的weight存放的值
    people.height//获得people的height存放的值
    //赋值
    people.name="娃哈哈"//把值存放到people.name
    strcpy(people.name, "Timmy");//结构体对于字符串的赋值 上面.会报错 建议以使用这个
    people.sex=1//把值存放到people.sex
    people.weight=23//把值存放到people.weight
    people.height=56//把值存放到people.height
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    之后会有->的访问 简单提一下那是指针的替代 等价 (*people).name people->name

    访问和赋值结构体数组数据

    通过 [] 和 . 访问

    struct {
       
         char name[20]//姓名
         short sex//性别
         int weight//体重
         double height //身高
     } people[20];
    //获取
    people[0].name//获得people数组的第一个结构体.的name存放的值
    people[0].sex//获得people数组的第一个结构体.的sex存放的值
    people[0].weight//获得people数组的第一个结构体.的weight存放的值
    people[0].height//获得people数组的第一个结构体.的height存放的值
    //赋值
    people[0
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    【ftp篇】 vsftp(ftp) 每天生成一个动态密码
    【教3妹学算法-每日一题】竞赛题:6160. 和有限的最长子序列
    一种高精度低功耗NB-IoT温度传感器
    Spark---核心概念(Spark,RDD,Spark的核心构成组件)详解
    利用开源代码提高写代码能力
    day59 单调栈.p2
    java毕业设计校园二手电动车交易平台的设计与实现mybatis+源码+调试部署+系统+数据库+lw
    leetcode解题思路分析(一百二十九)1079 - 1085 题
    算法设计与分析「通关指南」
    ssl/tls 自签证书
  • 原文地址:https://blog.csdn.net/preserveXing/article/details/127592334
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号