Autoleaders控制组李佳旭——c语言结构体学习笔记

2024-03-03 23:40

本文主要是介绍Autoleaders控制组李佳旭——c语言结构体学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1枚举
    • 1.1常量符号化
    • 1.2enum函数
  • 2结构体
    • 2.1理解
    • 2.2结构体的定义
    • 2.3结构体形式声明
    • 2.4结构体初始化
    • 2.5结构运算
  • 3结构与函数
    • 3.1指向结构的指针
    • 3.2结构指针参数
  • 4结构中的结构
    • 4.1结构数组
    • 4.2嵌套结构
  • 5类型函数
  • 6 联合(union)

1枚举

1.1常量符号化

首先我们要知道,符合(字母)是相对更好理解的,它可以清晰的表达程序的意思。使用常量符号化可以增加程序的可读性。
在这里插入图片描述

1.2enum函数

   struct date today{int month;int day;int year;}d1,d2;

d1,d2中均有month, day, year三个成员。
第三种

struct {int month;int day;int year;}d1,d1;
  • 这个为无名结构,必须声明其变量,否则struct为无用结构体。
  • d1,d2中均有month, day, year三个成员。

2.4结构体初始化

与数组类似,结构体使用点号.获取单个成员。
然后通过={}的形式来输入struct在这里插入图片描述

2.5结构运算

  • 要访问整个结构,直接用结构变量的名字
  • 对于整个结构,可以做赋值、取地址,也可以传递函数参数。
d1=(struct date){10,28,2022};//相当于d1.month=10,d1.day=28,d1.year=2022.
d1=d2;//相当于d1.month=d2.month,d1.day=d2.day,d1.year=d2.year.

数组无法完成这些运算。

3结构与函数

3.1指向结构的指针

  struct date today{
int month;
int day;
int year;
}d1;
struct date *p =&d1;\\需要用&进行取地址(*p).month = 12;
p->month = 12;\\为了方便我们输入,用->来表示结构函数中的成员

3.2结构指针参数

使用方式:先传入一个指针,在这个内层函数中对指针进行一定的操作。之后通过我们定义的函数返回指针。最后在外部函数中,通过指针使用这个变量。(也就是说通过指针参数,我们把最内层的变量带到了最外层的main函数中)
在这里插入图片描述

4结构中的结构

4.1结构数组

形式如下

struct date d1[100];
struct date []={10,28,2022};

相对与数组中每一个成员的类型都为我们定义的结构体

4.2嵌套结构

#include <stdio.h>
struct point{int x;int y;};struct date{struct point p1;struct point p2;};struct date r;//这个就是嵌套类型的变量里面有r.p1.x;r.p1.y;r.p2.x;r.p2.y。

5类型函数

  • typedef(自定义类型函数)
  • 作用:给已经有的函数定义新的名字
    如:typedef int length;(特别注意typedef后面最后一个单词才算是新的名字,毕竟typedef是用来简化程序的,这样才能改善程序的可读性)
    - 这样 length就可以代替int出现在变量的定义上了
    如:length a,b;

6 联合(union)

  • union和struct的使用非常相似,他们的区别就在于union里的变量会占据同一个空间,空间的大小取决于union中占空间最大的变量。
  • 因为union的输入输出在同一个空间上,新输入的数据会覆盖原来的数据,这导致在输出上有一点难度。不过union在不同类型的输入和输出以及所占的空间等方面优势明显。
    使用形式如下
union arr{char a;int b;long c;long long d;};```

这篇关于Autoleaders控制组李佳旭——c语言结构体学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771304

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中