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

[C语言入门] 结构体

目录

1. 啥是结构体

2. 啥是结构体变量

3. 创建结构体变量的小细节

3.1 创建全局结构体变量(不推荐)

3.2 创建局部结构体变量(不推荐)

3.3 创建局部结构体变量Plus

4. 结构体在内存里面咋存?


1. 啥是结构体

        结构体就是数据的集合,可以类比一下数组,数组是相同类型的集合;结构体对数据的异同没有任何要求;也就是说结构体是不同/相同类型的集合

2. 啥是结构体变量

        如果你学过面向对象的语言,可以把结构体变量理解为对象;如果你没有学过,那么可以把结构体理解为模版,结构体变量理解为根据模版来做的一些具体的东西;例如结构体人类,结构体变量张三,就是根据结构体人类模版来进行“制作”的具体的人。

#include <stdlib.h>
#include<string.h>
 // 结构体
 struct Person
 {
   char name[20];  
 };

int main()
{
  struct Person zhangsan = {"zhangsan"}; // 结构体变量张三,是由结构体人类模版“制作”的
  printf("%s",zhangsan.name);
  return(0);
}

3. 创建结构体变量的小细节

3.1 创建全局结构体变量(不推荐)

        我们可以在写结构体的时候顺便把结构体变量定义了,这时候的结构体变量是“全局”的,存在一些问题。

#include <stdlib.h>
 // 结构体
 struct Person
 {
   char name[20];  
 }p1,p2; // 全局结构体变量

3.2 创建局部结构体变量(不推荐)

虽然作用域从全局到了局部,但是写起来还是有点麻烦。

#include <stdlib.h>
 // 结构体
 struct Person
 {
   char name[20];  
 };


int main()
{
    struct Person p1,p2;// 局部结构体变量

    return 0;
}

3.3 创建局部结构体变量Plus

使用typedef 来简化创建结构体变量的流程。

#include <stdlib.h>
 // 结构体
 typedef struct Person
 {
   char name[20];  
 }P;


int main()
{
    P p1,p2;// 局部结构体变量

    return 0;
}

4. 结构体在内存里面咋存?

        结构体本身在内存里面并不占用任何空间,当使用结构体创建结构体变量的时候,结构体变量占用内存空间,占用的内存空间跟结构体内的成员变量的大小总和一样。这很好理解,想象一下你拿着一个重量忽略不计的模具,此时重量为0,一旦使用这个模具制作一些“巧克力”、“冰块”,此时这些“巧克力、冰块”就有了重量。

http://www.dtcms.com/a/109983.html

相关文章:

  • RNN万能逼近定理证明
  • 《2024年全球DDoS攻击态势分析》
  • 2025年内外网文件交换系统排名分析
  • 【3.软件工程】3.5 V开发模型
  • 深度学习与神经网络 | 邱锡鹏 | 第二章学习笔记
  • 微服务。1 微服务
  • Java学习总结-IO流
  • 如何免费制作办事指南二维码
  • 如何进行风电场微观选址
  • 如何在Windows上找到Python安装路径?两种方法快速定位
  • 深度学习deeplearn3
  • 基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
  • 质检LIMS系统在环境监测站的应用 环境监测场景下的LIMS系统应用
  • thinkphp每条一级栏目中可自定义添加多条二级栏目,每条二级栏目包含多个字段信息
  • 连接与效率的艺术:解码ToB 移动端协同产品的用户体验设计奥秘
  • PyTorch优化器
  • K8S学习之基础七十三:Istio简介和部署
  • 牛客 简写单词
  • NO.62十六届蓝桥杯备战|基础算法-二分查找|查找元素的第一个和最后一个位置|牛可乐和魔法封印|A-B数对|烦恼的高考意愿(C++)
  • 原生JS写一个JSON格式化工具
  • LeeCode 5. 最长回文字串
  • QT Quick(C++)跨平台应用程序项目实战教程 6 — 弹出框
  • UE5学习笔记 FPS游戏制作40 制作鼠标移入UI显示提示背景色的效果
  • C 语言中的递归:概念、应用与实例解析
  • 3D动画动作捕捉设备:惯性动捕赋能轻量级影视动画创作
  • Python Cookbook-5.1 对字典排序
  • 新版本AndroidStudio配置maven阿里云镜像
  • AI技术新突破:多模态与语音大模型重塑智能交互
  • VTK的两种显示刷新方式
  • 06-Spring 中的事件驱动机制