学习日志以及个人总结 (16)

共用体

共用体
union 共用体名
{
成员列表;
};//表示定义一个共用体类型


注意:
1.共用体
 初始化 --- 只能给一个值,默认是给到第一个成员变量
2.共用体成员变量辅助
3.可以判断大小端 ----※!!
  实际用途 :节省空间
             进行数据转换
 
 比如:
 struct stu
 {
    char name[20];
    int sno;
    float score;
 };
 struct teacher
 {
    char name[20];
    int Tno;
    float salary;
 };       
 ----------------------
 
 struct member
 {
    char name[20];
    int no;
    
    union
    {
        float score;
        float salary;
    }d;
    
 };

 4.共用体变量作为函数参数,也可以是函数返回值类型
 
    共用体结构体类型定义出来之后
    a.定义变量
    b.定义数组
    c.定义指针
    d.做函数参数,返回值类型

共用体判断大小端

  1 #include<stdio.h>
  2 
  3 union demo
  4 {
  5     int a;
  6     char b;
  7     short c;
  8 };
  9 
 10 int isEnddian(vodi)
 11 {
 12     union demo
 13     {
 14         int a;
 15         char b;
 16     }d;
 17 
 18     d.a=1;
 19     return d.b;                                                                                                                                                                                         
 20 }
 21 int main(void)
 22 {
 23     union demo d={'a'};
 24 
 25     d.a=0x12345678;
 26     d.b='a';
 27     d.c=0x99;
 28     printf("a=%#x\n",d.a);
 29     printf("b=%c:%#hhx\n",d.b,d.b);
 30     printf("a=%#x\n",d.c);
 31 }

枚举

枚举:一枚一枚的列举 

enum //枚举   实际上是一种数组类型(int)
enum 枚举类型名
{
    
};

提高代码可读性。本质:int类型 所以枚举和整型类型兼容

不足 :因为枚举类型--本质上是一个整型类型
所以枚举类型变量的值 并不能真正限定在 指定的那些值范围中。
 

例题无人机

 1 #include<stdio.h>
  2 enum nopeopleFly
  3 {
  4     flying,
  5     stop,
  6     holding
  7 };
  8                                                                                                                                                                                                         
  9 int main(void)
 10 {
 11     enum nopeopleFly n;
 12     int a ;
 13     scanf("%d",&a);
 14     n=a;
 15     switch(n)
 16     {
 17         case 0:
 18     printf("flying\n");
 19         break;
 20         case 1:
 21     printf("stop\n");
 22         break;
 23         case 2:
 24     printf("holding\n");
 25         break;
 26     }
 27 
 28     return 0;
 29 }

链表

链表:链式的数据表
 
 狗链! //寻找数据
 
优点:增加 删除数据较为方便
缺点:找数据不方便
 
存放链式数据的结构
节点[数据|另外一个节点指针] 
 
 [数据域|指针域]
 
 节点:
 struct Node
 {
//数据域
    struct stu s;
//指针域
    struct Node *next;
 };
 
 数据结构对应算法 --- 操作
 
 增加数据就是增加节点
 删除数据就是减少节点
 
 操作:
 1,创建一个链表---空链表
 //有头链表 ---更方便处理链表
 //无头链表  
 
 c语言阶段:
 有头 单向链表
 
 空链表的特点为:只有头节点 并且头节点指针域为NULL //即相当于尾节点
 
 2.插入
    创建一个新的节点
    将节点链接起来


    实现链表操作


void pushBack(struct Node *head)
{    //尾插
    S1:创建一个新的节点
    struct     Node *pNew = malloc(sizeof(struct Node));
                                    栈上
    S2:找尾节点
    struct Node *p =&head;//此时p在头节点
    p = p->next;
    while(p->next != NULL)
    {
        p = p->next;//让P指向下一个节点
    }
    S3.链接到尾节点后面
    p->next = pNew;
    pNew->next = NULL;//尾节
}    
    //链表不放入栈上  放入堆
    
    int length(struct Node *head)
    {
        //统计有效节点的个数
    }
 
    //头插 
    void pushFront(struc Node *head ,int data)
    {
    //1.创建新节点
    pNew
    //2.链接
    pNew->next = p->next;
    p->next = pNew;
    }

 1 #include<stdio.h>                                                                                                                                                                                       
  2 #include<stdlib.h>
  3 struct Node
  4 {
  5     int data;
  6     struct Node *next;
  7 };
  8 
  9 void pushBack(struct Node *head,int data)
 10 {  //创建新节点
 11     struct Node *pNew = malloc(sizeof(struct Node));//放在堆区
 12     pNew->data =data;
 13     //链接
 14     struct Node *p =head;//此时p在头节点
 15 
 16     while(p->next != NULL)
 17     {
 18         p = p->next;//让p指向下一个节点
 19     }
 20     p->next = pNew;
 21 
 22     pNew->next = NULL;
 23 }
 24 
 25 int isEmpty(struct Node *head)
 26 {
 27     if(head->next == NULL)   //判断是否是空链表
 28     {
 29         return 1;
 30     }else
 31     {
 32         return 0;
 33     }
 34 }
 35 
 36 void printLinklist(struct Node *head)
 37 {
 38     struct Node *p =head;
 39     if(isEmpty(head) == 0)
 40     {
 41         p=head->next;
 42         while(p != NULL)
 43         {
 44             printf("%d\n",p->data);
 45             p=p->next;
 46         }
 47     }
 48 }
 49 
 50 int lengh(struct Node *head)
 51 {
 52     struct Node *p=head->next;
 53     int c=0;
 54     while(p!=NULL)
 55     {
 56         c++;
 57         p=p->next;
 58     }
 59     return c;
 60 }
 61 
 62 void pushFront(struct Node *head,int data)
 63 {
 64     struct Node *pNew = malloc(sizeof(struct Node));
 65     pNew->data = data;
 66 
 67     struct Node *p=head;
 68     pNew->next = head->next;
 69     p->next = pNew;
 70 
 71 }
 72 
 73 int main(void)
 74 {
 75     struct Node head;
 76     head.next = NULL;//空链表
 77     pushBack(&head,1); // 将一个新元素加到 head后面 
 78     pushBack(&head,2);
 79     pushBack(&head,3);
 80     pushBack(&head,4);
 81     pushBack(&head,5);
 82     printf("lengh = %d\n",lengh(&head));
 83     printLinklist(&head);
 84     return 0;
 85 }                                            

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

猫用空气净化器好吗?好用的养猫宠物空气净化器品牌推荐

作为一个养猫五年的资深铲屎官&#xff0c;我对如何轻松快乐地养猫有一些心得。猫咪每天在家里奔跑&#xff0c;导致家里经常会出现“猫毛雪”&#xff0c;沙发、地板和衣服都成了重灾区。在除猫毛的问题上&#xff0c;我真的尝试了各种方法&#xff0c;几乎用上了所有的技能。…

2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测

2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测 目录 2024美赛预测算法 | 回归预测 | Matlab基于RIME-LSSVM霜冰算法优化最小二乘支持向量机的数据多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效…

2024美赛E题数学建模思路代码数据分享

2024 ICM Problem E: Sustainability of Property Insurance 本题要求选取不同大陆上经历极端天气的两个地区来为保险公司开发模型&#xff0c;本题的重点是找到尽可能多而全的数据&#xff0c;包括天气数据&#xff0c;经济数据&#xff0c;人口数据等。 模型选择&#xff1a…

《最新出炉》系列入门篇-Python+Playwright自动化测试-10-标签页操作(tab)

1.简介 标签操作其实也是基于浏览器上下文&#xff08;BrowserContext&#xff09;进行操作的&#xff0c;而且宏哥在之前的BrowserContext也有提到过&#xff0c;但是有的童鞋或者小伙伴还是不清楚怎么操作&#xff0c;或者思路有点模糊&#xff0c;因此今天单独来对其进行讲…

Windows内存管理 - 物理内存概念(Physical Memory Address)

作为windows驱动程序的程序员&#xff0c;需要比普通程序员更多的了解Windows内部的内存管理机制&#xff0c;并在驱动程序中有效地使用内存。在驱动程序编写中&#xff0c;分配和管理内存不能使用熟知的Win32 API函数&#xff0c;取而代之的是DDK提供的高效的内核函数。程序员…

PKG系统安装包及IPSW固件:MacOS 11-14 Sonoma 正式版

MacOS 14 Sonoma&#xff0c;为提高生产力和创造力带来了全新的功能&#xff0c;有了更多使用小部件和令人惊叹的新屏幕保护程序进行个性化设置的方法&#xff0c;对Safari浏览器和视频会议进行了重大更新&#xff0c;以及优化的游戏体验——Mac体验比以往任何时候都更好。 mac…

MySQL篇----第三篇

系列文章目录 文章目录 系列文章目录前言一、InnoDB与MyISAM的区别二、索引三、常见索引原则有前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、InnoDB与MyISAM…

【Android Studio 启动出错】

Android Studio版本&#xff1a;2022.3.1 出错前操作&#xff1a; 昨晚开着三四个项目&#xff0c;然后太晚了直接关机睡觉&#xff0c;第二天起来开机&#xff0c;启动Android Studio&#xff0c;就出现了这个问题&#xff1a; Internal error. Please refer to https://co…

opencv+mediapipe 手势识别控制电脑音量(详细注释解析)

前段时间社团布置了一个手势识别控制电脑音量的小任务&#xff0c;今天记录一下学习过程&#xff0c;将大佬作品在我的贫瘠的基础上解释一下~ 项目主要由以下4个步骤组成&#xff1a; 1、使用OpenCV读取摄像头视频流 2、识别手掌关键点像素坐标 3、根据拇指和食指指尖的坐标…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月3日,星期六

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年2月3日 星期六 农历腊月廿四 南小年 1、 气象局&#xff1a;将雨雪冰冻三级应急响应提升为二级&#xff0c;针对性做好春运气象保障服务。 2、 教育部&#xff1a;鼓励银龄教师投身西部地区、民族地区民办学校。 3、 四部…

解决java.lang.ClassCastException

目录 问题 原因 解决方案 问题 前后端分离开发中&#xff0c;往往需要统一封装返回数据用到一个Result<T>类包装多个接口&#xff1a; 重复劳动并不优雅&#xff0c;于是想用RestControllerAdvice做控制器拦截增强&#xff0c;进行封装。 代码如下&#xff1a; Res…

[Python] 什么是PCA降维技术以及scikit-learn中PCA类使用案例(图文教程,含详细代码)

什么是维度&#xff1f; 对于Numpy中数组来说&#xff0c;维度就是功能shape返回的结果&#xff0c;shape中返回了几个数字&#xff0c;就是几维。索引以外的数据&#xff0c;不分行列的叫一维&#xff08;此时shape返回唯一的维度上的数据个数&#xff09;&#xff0c;有行列…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+

错误记录&#xff1a; 安装使用moviepy&#xff0c;测试出现问题。 解决方案&#xff1a; 采用降低urllib3的版本的方式&#xff0c;实测可行。 pip install urllib31.*

【Kafka专栏】windows搭建Kafka环境 详细教程(01)

文章目录 01 引言1.1 官网地址1.2 概述简介1.3 kafka与zookeeper 02 部署zookeeper2.1 下载组件包2.2 解压压缩包&#xff08;1&#xff09;解压到任意路径&#xff08;2&#xff09;解压后的目录创建数据目录data 2.3 修改zoo配置2.4 设置系统变量2.5 启动zookeepe服务&#x…

数据结构+算法(第13篇):精通二叉树的“独门忍术”——线索二叉树(上)

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

【数据结构】(分治策略)中位数的查询和最接近点对问题

中位数查询&#xff1a; 寻找一组字符串中第k小的数&#xff0c;返回其值和下标。 不可以有重复值&#xff08;在缩小规模的时候&#xff0c;会导致程序死循环&#xff09; 相对位置的转换体现了分治策略的思想。> 划分函数 int partition(int *nums,int left, int rig…

BUUCTF-Real-[Flask]SSTI

目录 漏洞描述 模板注入漏洞如何产生&#xff1f; 漏洞检测 漏洞利用 get flag ​编辑 漏洞描述 Flask框架&#xff08;jinja2&#xff09;服务端模板注入漏洞分析&#xff08;SSTI&#xff09; Flask 是一个 web 框架。也就是说 Flask 为您提供工具、库和技术来允许您构…

浅谈WPF之UniformGrid和ItemsControl

在日常开发中&#xff0c;有些布局非常具有规律性&#xff0c;比如相同的列宽&#xff0c;行高&#xff0c;均匀的排列等&#xff0c;为了简化开发&#xff0c;WPF提供了UniformGrid布局和ItemsControl容器&#xff0c;本文以一个简单的小例子&#xff0c;简述&#xff0c;如何…

[Java]JDK 安装后运行环境的配置

这篇文章用于介绍jdk.exe安装之后的运行环境配置&#xff0c;以及如何检查是否安装成功 检查自己是否安装jdk环境&#xff0c;记住这个安装的改的路径: (应该要安装2个&#xff0c;一个是jdk,一个是jre) 安装后的在文件夹的样子(路径自定义&#xff0c;在java下面): 参考如下…

奠定基础:用于机器学习的微积分、数学和线性代数

一、说明 机器学习是一个引人入胜的领域&#xff0c;它使计算机能够从数据中学习并做出预测或决策&#xff0c;而无需明确编程。然而&#xff0c;在幕后&#xff0c;有一个坚实的数学和线性代数基础&#xff0c;构成了机器学习算法的支柱。在本文中&#xff0c;我们将探讨在深入…