自定义类型:结构体,枚举,联合——结构体

//-------------------------自定义类型:结构体,枚举,联合

//C语言已经提供给我们一些内置类型,例如:int,char,short,double,float

//但是远不能满足我们对于类型的使用需求,

// 因此我们引入自定义类型,例如:结构体、联合体、枚举

// ------------结构体

//一、结构体的声明

//1.结构的定义:结构是一些值的集合,这些值被称为欸结构变量,结构的每个成员都可以是不同的类型

//结构体不同于数组(数组内的元素的类型必须相同)

//2.结构的声明

//struct tag

//{

// member - list;//成员列表

//}variable - list;//变量列表(未在变量列表处声明过的变量(不可当作全局变量使用),

// 直接在main主函数中使用时(eg:struct Stu s3)就只能算是局部变量,)

//3.结构体类型的定义

//学生:名字、身高、体重、手机号、年龄

// 写法1

//struct Stu

//{

// //学生的相关信息

// char name10;

// int age5;

//};

//写法2(放在主函数main内部为s1,s2局部变量,放在外面为全局变量)

//struct //struct Stu:叫做类型,s1,s2为变量

//{

// //学生的相关信息

// char name10;

// int age5;

//}s1,s2;//s1,s2是结构体类型的变量

s1,s2为局部变量

//#include<stdio.h>

//int main()

//{

// //struct Stu

// //{

// // //学生的相关信息

// // char name10;

// // int age5;

// //}s1, s2;//可替换为

// struct St s1;

// return 0;

//}

4.特殊结构体声明

匿名结构体类型(就是struct Stu中没有了结构体标签(tag))

(只能使用1次,1.创建变量列表(用于局部变量)或2.创建于mian函数中(用于局部变量),

可以1.2同时存在,但是作为局部变量的那个不可以进行任何操作),其余均不可再次使用

//struct

//{

// char name10;

// int age5;

//}a20, * p;

//struct

//{

// //学生的相关信息

// char name10;

// int age5;

//}s1;//可替换为

//int main()

//{

// struct s1 ;//用于局部变量,但只可用一次

// p = &s1;//虽然可以运行,但是系统会报出警告(指针类型不兼容------p与x的地址是不一样的,

// //虽然成员变量相同,但是编译器看来,依然是两种不同的类型)

// //strcut s2;//所以此处再次使用时就提示错误

// return 0;

//}

  1. 结构的自引用(自己找到一个与自己同类型的另外一个节点或数据)

//数据结构:数据在内存中的存储结构

//比如:线形数据结构、树形数据结构(eg:二叉树)、链表、顺序表

//顺序表:顺序表的结构是在内存中连续存放的。eg:1 2 3 4 5

//链表:链表的结构在内存中随机存放,靠互相连接找到顺序。eg:1---2,2---3,3---4,

// 每个元素都算作一个节点,节点的一部分存放数据(叫做数据域,可以存放一个数值eg:1)

// 另外一部分存亡下一个结点的地址(叫指针域,可以存放一个地址eg:0012ff40)

//这样就可以将每个节点串起来

//struct Node

//{

// int data;

// struct Node* next;//此结构体包含的指针*next,能够找到与自己同类型的一个节点,因此叫结构体的字引用

//};

//注意:结构体的自引用,结构体里包含结构体包含同类型的结构体的这种方式是不可行的,

//而正确的方法是结构体里包含一个同类型的结构体指针

相关推荐
hetao17338375 分钟前
2026-09-01~09-04 hetao1733837 的刷题记录
c++·算法
Evand J23 分钟前
【MATLAB例程,图像滤波5】 反谐波均值滑动窗口滤波(CHMF)图像降噪与质量评价,附代码下载链接
图像处理·算法·计算机视觉·matlab·均值算法·滑动窗口滤波·均值滑动
血小板要健康44 分钟前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
a187927218311 小时前
【算法】回溯算法(三):三记重锤与 N 皇后——记忆化、状态设计与三层漏斗
算法·leetcode·go·剪枝·回溯·n皇后·算法讲解
HugoStudio_SWAN3 小时前
洛谷 P1420 / P1179 / B4262 最长连号、数字统计与词频统计——统计的三种面孔
c++·学习·程序人生·算法
青 春 记 忆4 小时前
LeetCode 350. 两个数组的交集 II|Python 解法详解
python·算法·leetcode
阳明山水4 小时前
销量预测2025—2026:从模型竞赛到系统融合的范式转型
人工智能·深度学习·算法·机器学习·架构
桐盛科技5 小时前
拒绝“漂绿”风险:基于边缘计算的碳排放数据清洗算法与实时校验逻辑
人工智能·算法·边缘计算
wuyk5555 小时前
107.FreeRTOS 链表深度解析:从原理到面试满分答案
c语言·开发语言·数据结构·stm32·单片机·链表·面试
-dzk-5 小时前
【链表】LC 138.随机链表的复制
数据结构·链表