结构体

什么是结构体

结构体是C语言中的一种数据类型,它有如下特点

结构体是一种构造数据类型

把不同类型的数据组合成一个整体来自定义数据类型

结构体的定义方式与结构体变量的声明

//有名结构体

struct Student{

int num;

char name[30];

} s1;

//匿名结构体

struct Staff{

char name[30];

int sllary;

};

//使用define

#define ds struct DefineStruct

ds{

int i;

};

//使用typedef

typedef struct date{

int year;

int month;

int day;

} Date;

结构体类型与结构体变量

结构体类型与结构体变量概念不同,相当于java中的类,和具体类的实例

类型:不分配内存;变量:分配内存

类型:不能赋值、存取、运算等操作,变量可以

结构体可嵌套,但防止递归嵌套

结构体成员名可与程序中变量名相同,不会造成混淆

结构体变量的初始化

//像创建类一样,先创建结构体,再声明具体实例变量

struct person

{

int num;

char name[20];

};

struct person pf={18,'pf'};

//有点类似于c#中类的初始化器的概念,主要是为了让代码更加简洁

struct animal{

int weight;

char name[20];

} lion={3,'xinba'};

//匿名类+初始化器的形式,再度简化了代码

struct {

int height;

char name[20];

} cat{2,"tom"};

结构体变量的引用

这个知识点比较重要,在2017年的真题当中就有涉及,总共有3种引用方式:

struct person

{

int num;

int height;

int age;

};

struct person pf={18,171,200},

*p=&pf;

pf.num=20;//结构体变量名.成员名

p->height=180;//结构体指针名->成员名

(*p).age=300;//(*结构体指针名).成员名

printf("num=%d,weight=%d,age=%d",pf.num,p->height,(*p).age);

共用体

共用体的定义:共用体也叫联合体,与结构体类似,也是一种构造数据类型,但却有着不同的行为方式。一般至少由一种数据类型构成,所有成员引用的是内存中相同的位置

定义方式如下,我的理解就是把一堆不一样的类型拼在一起,然后对于这个共用体可以放置成员内的所有类型,如例子中的int,char,float(不恰当的比方就是low一点的泛型)。然后存放变量的时候每次只能存放一种类型的,并且共用体union的内存大小取自成员中占用内存最大的那种类型。

union data{

int i;

char ch;

float f;

}a,b;

union data2{

int i;

char ch;

};

union data2 x,y,z,*p,d[3];

union{

int i;

char ch;

}u,v,w;

java 共用体_结构体与共用体相关推荐

  1. java 链表放置结构体_结构体和它在链表中的使用

    一.结构体 由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的. 1.1如何声明结构体呢? struct 结构体名  //结构体名字用作结构体类型的标志 {成员列表}; ...

  2. C++_结构体指针_嵌套结构体_结构体做为函数参数_结构体值传递和指针传递---C++语言工作笔记026

    然后我们来看结构体指针. 可以看到我们先去定义一个结构体 然后我们在main函数中,去声明一个结构体 s 然后我们定义一个指针 int *p = &s; 指向这个结构体变量. 这里要注意

  3. java 消息签名_微信公众平台消息体签名及加解密实例(Java)

    前言: 最近在研究微信公众平台的开发,玩得不亦乐乎.基本的回复功能已经实现了,而且回复用到了图灵机器人的接口.其实图灵机器人已经有微信接口可以直接调用.如果项目的需要,想要做个性化需求的话,用这种方式 ...

  4. unity 根据模型生成碰撞体_快速准确立体碰撞体自动生成器Unity游戏素材资源

    本游戏资料是快速准确立体碰撞体自动生成器Unity游戏素材资源,大小:5 MB ,格式:unitypackage,使用软件:unity5.6.4或更高,资产版本:Version 1.1(current ...

  5. _C语言_结构体_vistodio_c报错.+初学者的自闭瞬间。哎。

    在C语言中一直用不好子函数, 前几天看书+视频教学终于弄懂了, 想着用大一上做到的课设重新打一遍 工资纳税系统(不能说是系统就是一个控制台窗口连程序都算不上哈哈哈但是当时做出来的时候真的就是蛮高兴地) ...

  6. Java中如何实现结构体?如何对结构体进行排序?

    ***今天在做老师布置的编程题时,遇到了本题.感觉这道题如果用C++来解决的话,用结构体比较好吧!哈哈哈,可能还有其他的好方法,但我目前想到的是用结构体来解决比较合理.Java中有结构体吗?如果有,它 ...

  7. malloc 结构体_算法与数据结构——结构体变量

    首先,要学习数据结构,一般要先了解结构体变量的使用,那么该如何定义结构体变量呢?随我一起回忆一下吧.(不一样的音乐,不一样的体验)(1)直接定义结构体变量.struct {int a;        ...

  8. php 结构体_【开发规范】PHP编码开发规范下篇:PSR-2编码风格规范

    之前的一篇文章是对PSR-1的基本介绍 接下来是PSR-2 编码风格规范,它是 PSR-1 基本代码规范的继承与扩展. PSR-1 和PSR-2是PHP开发中基本的编码规范,大家其实都可以参考学习下, ...

  9. abaqus生成adams柔性体_基于ADAMS 的大型反铲挖泥机加装破碎锤 结构动力学分析

    刘 斌 徐沪萍 王 磊 武汉理工大学物流工程学院 武汉 430063 摘 要:以配备液压破碎锤的反铲挖泥船反铲挖泥机为研究对象,简单介绍加装液压破碎锤方案,然后运用动力学理论和相关的动态仿真软件,通过 ...

最新文章

  1. linux磁盘i o跟踪,利用zabbix动态监控磁盘I/O
  2. hive处理json数据_(转)hive中解析json数组
  3. python下载文件到指定目录-python – 如何将文件下载到特定目录?
  4. Android 实现简单的插件化模块化
  5. 明源云创CI/CD技术演进
  6. 2019计算机应用基础期末考试试题,2019-2020年度公共课计算机应用基础考试试题附答案...
  7. Spring 4 xml 注解配置谅解 spring
  8. RabbitMQ架构模型(一)
  9. 虚拟化安全:瑞星的下一个战场
  10. http头部 Expect
  11. 使用VisualSVN Server搭建SVN版本控制服务器
  12. Apollo之Canbus模块学习总结
  13. 音乐厅三角钢琴-Native Instruments Noire v1.1 Kontakt
  14. 实变函数与泛函数分析学习笔记(三):有界线性算子
  15. 要读的书---培根说:历史使人明智,诗词使人巧慧,算学使人精密,哲理使人深刻,伦理学人庄重,逻辑修辞使人善辩。...
  16. 小白学习Java第七天
  17. SpringCloud Alibaba 实战之《服务门户:Spring Cloud Gateway 如何把好微服务的大门》
  18. 智能驾驶安全专题 | 功能安全与SOTIF如何融合实施
  19. 树莓派开发系列教程2——树莓派上手使用
  20. H5mui微信浏览器登录页

热门文章

  1. Redis:只刷面试题,怎可能进大厂,多理解原理!(Redis的 集群)
  2. GO微服务实战第五节 为什么说 Service Meh 是下一代微服务架构?
  3. 按图幅号批量裁剪和命名影像操作流程
  4. 在Putty中使用SecureCRT vt100的字体
  5. 用PPT辅助英语错词背诵
  6. 协程简史,一文讲清楚协程的起源、发展和实现
  7. 优秀课程案例:使用Scratch的画笔积木绘制甲壳虫的七彩移动轨迹!
  8. 航测相关软件教材分享
  9. Android 八角图 蛛网图 自定义多边形
  10. 统计书中单词出现次数, 然后把数据生成pdf