首页 > 其他分享 >C语言基础--结构体

C语言基础--结构体

时间:2024-06-16 15:32:35浏览次数:13  
标签:struct name -- C语言 char BOOK mybooks 结构

一、结构体定义

  1、结构体是对数据类型的拓展,在一个结构体可以存放多样类型的数据。

   2、结构体定义格式

    struct 结构体名{

      类型 成员变量1;

      类型 成员变量2;

      .......

    };

    typedef enum card_type{ 身份证, 学生证,毕业证} CARD_TYPE;

    struct stu_info {

      unsigned int id;

      CARD_TYPE CardType;

      char CardNum[20];

      char name[32];

      char sex;

     };

  3、直接赋初始值

    struct stu_info  s1 = { 1,  身份证,  "20240100001",  "张三", ‘M’};

二、.操作符

  struct stu_info s2;

  s2.id = 2;

  strcpy(s2.CardNum, "20240100002");

  s2.name = "李四";

  s2.sex = 'M';

 

三、 结构体数组

   #define BOOK_CNT 3  

  //定义结构数组
   typedef struct book{
     int year;
    double prince;
    char name[64];
    char author[32];
  }BOOK, *P_BOOK;
  //初始化结构体数组
  BOOK mybooks[BOOK_CNT]={
     {1923, 230.4, "good", "zs"},
     {2034, 19.3, "well", "ls"},
    {2023, 39.24, "great", "ww"},
   };

   //访问结构体数组
   for(i=0; i<BOOK_CNT; i++){
    printf("%-6d, %6.2f, %-20s, %-20s\r\n",mybooks[i].year, mybooks[i].prince, mybooks[i].name, mybooks[i].author);
  }

四、结构体指针

//结构体指针
struct book* p1 = &mybooks[0];
BOOK* p2 = mybooks;
P_BOOK p3 = &mybooks[2];

printf("%s\r\n", (*p1).name);
printf("%s\r\n", p3->name);
printf("%d\r\n", p2->year);

标签:struct,name,--,C语言,char,BOOK,mybooks,结构
From: https://www.cnblogs.com/zblblog/p/18250568

相关文章

  • Spark RDD弹性分布式数据集原理与代码实例讲解
    SparkRDD弹性分布式数据集原理与代码实例讲解1.背景介绍在大数据处理领域,ApacheSpark已成为最受欢迎的框架之一。其核心组件之一是弹性分布式数据集(ResilientDistributedDataset,简称RDD)。RDD是Spark的基础抽象,提供了对大规模数据集的容错和并行处理能力。本文将......
  • redis常用5种数据类型及其常见问题(缓存穿透,缓存击穿,缓存雪崩)
    1.字符串(String)2.哈希(hash):redishash是一个string类型的字段和value的映射表,hash特别适合存储对象3.列表(List):字符串列表,按照插入的顺序。可以添加一个元素到列表的头部或尾部4.集合(set):String类型的无序集合。集合成员不可重复,redis中集合通过哈希表实现的,添加,删除,查找复杂度......
  • 准备离职了 电脑怎么清理?离职最干净的电脑清理办法
    准备离职了电脑怎么清理?离职最干净的电脑清理办法人在江湖身不由己,离职这个事情,所有人都要面对。无论是出于个人发展、工作环境、薪资待遇还是其他原因,离职都是人生和职业道路上的一种常态。离职是一个残酷的事实,很少人能在离职时候快快乐乐的离开,多少会有点矛盾。离职时候......
  • 编写单个函数的ROP链
    什么是ROP链在我初识栈溢出那篇博客已经详细的讲了函数的调用过程(基于X86框架),不了解的可以看一下,没有这个理论基础,是学不好ROP的。现在我们说一下什么是ROP。ROP链就是通过返回地址的修改来完成的编程,调用特定的函数的一种编程模式。我们可以联想一下你做的最简单的栈溢出的题,返......
  • JAVA多线程实现的三种方式
    1.继承Thread类classExtendThreadextendsThread{//继承自ThreadprivateStringname;publicExtendThread(Stringname){this.name=name;}@Overridepublicvoidrun(){//必须重写run方法,并......
  • DEBUG调试
    Debug调试界面调试工具栏进入调试模式后,会显示Debug工具栏,包含多个功能按钮:复位按钮:类似于硬件复位,将程序重置到起始位置。全速运行(Run):使程序持续运行直到遇到断点或结束。单步调试(StepInto):逐条语句执行,遇到函数会进入函数内部(快捷键:F11)单步跳过调试(StepOver):逐......
  • 【自动驾驶】随机缩进2D框的一条边
    这里主要对于方法进行总结,如果没什么思路的朋友可以看看,有更好思路与方法的朋友可以交流一下,看看是否能做一些优化。1.背景有些时候我们不一定是对检测结果直接用,有可能是根据点包一个框,也有可能会将检测的框进行放大或者缩小,以提高系统的鲁棒性或者说降低或提高敏感度。这个......
  • Windows系统上安装部署苹果系统(Mac OS)的几种方法
    /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁”工具欺骗macOS系统,让苹果系统认为你的电脑其实是一台苹果电脑,从而可以安装运行。*/1.购买苹果笔记本或苹果一......
  • 算法人生(22):从“生成对抗网络”看“逆商提升”
    ​在图像生成与编辑、音频合成、视频生成领域里,有一个非常重要的深度学习方法——生成对抗网络(简称GANs),它是由两个神经网络组成的模型,分别为生成器(Generator)和判别器(Discriminator),这两个网络相互博弈,通过对抗学习的方式来训练,以便生成逼真的数据样本。它的大致步骤如下:初始......
  • 写个简单的爬虫案例
    以下是一个简单的爬虫案例,用于从网页上爬取图片并保存到本地:```pythonimportrequestsfrombs4importBeautifulSoupimportos#创建一个文件夹用于保存图片ifnotos.path.exists('images'):  os.makedirs('images')#网页URLurl='https://www.example.com'#......