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

//————————-自定义类型:结构体,枚举,联合
//C语言已经提供给我们一些内置类型,例如:int,char,short,double,float
//但是远不能满足我们对于类型的使用需求,
// 因此我们引入自定义类型,例如:结构体、联合体、枚举


// ————结构体
//一、结构体的声明
//1.结构的定义:结构是一些值的集合,这些值被称为欸结构变量,结构的每个成员都可以是不同的类型
//结构体不同于数组(数组内的元素的类型必须相同)
//2.结构的声明
//struct tag
//{
//    member - list;//成员列表
//}variable - list;//变量列表(未在变量列表处声明过的变量(不可当作全局变量使用),
// 直接在main主函数中使用时(eg:struct Stu s3)就只能算是局部变量,)
//3.结构体类型的定义
//学生:名字、身高、体重、手机号、年龄
// 写法1
//struct Stu
//{
//    //学生的相关信息
//    char name[10];
//    int age[5];
//};
//写法2(放在主函数main内部为s1,s2局部变量,放在外面为全局变量)
//struct Stu//struct Stu:叫做类型,s1,s2为变量
//{
//    //学生的相关信息
//    char name[10];
//    int age[5];
//}s1,s2;//s1,s2是结构体类型的变量
s1,s2为局部变量
//#include<stdio.h>
//int main()
//{
//    //struct Stu
//    //{
//    //    //学生的相关信息
//    //    char name[10];
//    //    int age[5];
//    //}s1, s2;
//    struct St s1;
//    return 0;
//}
4.特殊结构体声明
匿名结构体类型(就是struct Stu中没有了结构体标签(tag))
(只能使用1次,1.创建变量列表(用于局部变量)或2.创建于mian函数中(用于局部变量),
可以1.2同时存在,但是作为局部变量的那个不可以进行任何操作),其余均不可再次使用
//struct
//{
//    char name[10];
//    int age[5];
//}a[20], * p;
//struct 
//{
//    //学生的相关信息
//    char name[10];
//    int age[5];
//}s1;
//int main()
//{
//    struct s1 ;//用于局部变量,但只可用一次
//    p = &s1;//虽然可以运行,但是系统会报出警告(指针类型不兼容——p与x的地址是不一样的,
//    //虽然成员变量相同,但是编译器看来,依然是两种不同的类型)
//    //strcut s2;//所以此处再次使用时就提示错误
//    return 0;
//}
5. 结构的自引用(自己找到一个与自己同类型的另外一个节点或数据)
//数据结构:数据在内存中的存储结构
//比如:线形数据结构、树形数据结构(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,能够找到与自己同类型的一个节点,因此叫结构体的自引用
//};
//注意:结构体的自引用,结构体里包含结构体包含同类型的结构体的这种方式是不可行的,
//而正确的方法是结构体里包含一个同类型的结构体指针

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值