首页 > 其他分享 >自定义类型:结构体

自定义类型:结构体

时间:2023-12-30 13:31:38浏览次数:24  
标签:struct 自定义 int s2 s1 类型 结构

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

//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 //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,能够找到与自己同类型的一个节点,因此叫结构体的字引用

//};

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

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

标签:struct,自定义,int,s2,s1,类型,结构
From: https://blog.51cto.com/KKhahaha/9040829

相关文章

  • 数据结构应用之桶排序
    问:有10G的订单数据,希望订单金额(假设都是正整数)进行排序,但我们内存有限,只有几百MB,如何进行排序?答:因内存有限,需要排序的数据量巨大,所以,此时需要外部排序,外部排序采用的是一种分治思想,外部排序最常用的是多路归并排序,即将大数据切成多份一次可以载入内存的小数据,对小数据进行内......
  • 空结构体的作用和使用场景
    1.不占空间内存在Go中,可以使用unsafe.Sizeof计算出一个数据类型实例需要占用的字节数。packagemainimport("fmt""unsafe")funcmain(){fmt.Println(unsafe.Sizeof(struct{}{}))} 可以看到,Go中空结构体struct{}是不占用内存空间,不像C/C++......
  • HTTP类型接口之请求&响应详解
    一、接口介绍接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口常见的分类有:二、HTTP类型接口通过Fiddler抓......
  • 金蝶云星空权限对象表结构
    一、BOS平台【权限对象】 二、MSSQL脚本--权限对象主表SELECT*FROMT_SEC_PermissionObjectWHEREFITEMID='64f6de86387210'--权限对象多语言表SELECT*FROMdbo.T_SEC_PERMISSIONOBJECT_LWHEREFITEMID='64f6de86387210'--FNAME='售后单'--权限对象下的权限项......
  • c++教程3控制结构与函数
    3控制结构与函数ifswitchforwhile声明函数传递参数重载函数优化函数3.1ifC++if关键字执行基本的条件测试,对给定表达式进行布尔值(true或false)求值,其语法如下:if(test-expression){statements-to-execute-when-true}测试后面的大括号可......
  • 【数据结构】C语言实现双链表的基本操作
    双链表导言大家好,很高兴又和大家见面啦!!!经过前面几个篇章的内容分享,相信大家对顺序表和单链表的基本操作都已经熟练掌握了。今天咱们将继续分享线性表的链式存储的第二种形式——双链表。在今天的内容中,咱们将介绍双链表的创建以及一些基本操作,接下来跟我一起来看看吧!一、单链表与双......
  • 34 VIVADO自定义IP简单封装方法
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述XILINX作为FPGA全球老大,不仅仅是硬件技术实力,而且EDA软件也是非常优秀,XILINXVIVADO是业内最先进的开......
  • 数据结构实验代码分享 - 4
    迷宫与栈问题(图的应用)【问题描述】以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。输入:行列迷宫,0表示无障碍,1表示有障碍输出:一条Path或“NOPATH” 注:参考了《数据结......
  • Dapper官方文档(七)【结果之匿名类型,强类型,多映射,多结果,多类型】
    结果匿名描述可以使用扩展方法执行查询并使用动态类型映射结果。匿名类型结果可以从以下扩展方法映射:QueryQueryFirstQueryFirstOrDefaultQuerySingleQuerySingleOrDefault这些扩展方法可以从IDbConnection类型的任意对象中调用。案例-QueryQuery方法可以执行查询......
  • 在SpringBoot中自定义指标并使用Prometheus监控报警
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享在10分钟教你使用Prometheus监控SpringBoot工程中介绍了如何使用Prometheus监控SpringBoot提供的默认指标,这篇介绍如何自定义业务指标,并使用Prometheus进行监控并报警,同时在Grafana进行展现示例......