范文无忧网范文学习范文大全

C语言里面结构体与共同体分别是啥意思

10月16日 编辑 fanwen51.com

[数据结构c语言版的课程设计]一、问题描述: 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的...+阅读

C语言里面结构体与共同体分别是啥意思?具体指的是什么

一种构造数据类型,具体指:int、char、float。

结构体是一种构造数据类型(也称复杂数据类型),由若干不同类型的变量(数据)组成。每个变量都是结构体的成员(member),每个成员可以是基本数据类型,也可以是构造类型。相应的,int、char、float 这些数据类型被称为基本数据类型。

结构体变量:结构体也是一种数据类型,可以用来说明变量。例如:

[cpp] view plain copy

struct stu stu1, stu2;

你也可以在定义结构体的同时定义结构体变量:

[cpp] view plain copy

struct stu{

char *name; //姓名

int num; //学号

char sex; //性别

float score; //成绩

} stu1, stu2;

将变量放在结构体定义的最后即可。

也可以用宏定义使一个符号常量来表示一个结构类型,例如:

[cpp] view plain copy

#define STU struct stu

STU{

char *name; //姓名

int num; //学号

char sex; //性别

float score; //成绩

};

STU stu1, stu2;

C语言里面结构体与共同体是啥意思具体指的是什么

我怕我解释得不够清楚,我还是在网上找个清楚点的给你吧。

联合体(union)和结构体(struct)的区别

1. 联合说明和联合变量定义

联合也是一种新的数据类型, 它是一种特殊形式的变量。

联合说明和联合变量定义与结构十分相似。其形式为:

union 联合名{

数据类型 成员名;

数据类型 成员名;

...

} 联合变量名;

联合表示几个变量公用一个内存位置, 在不同的时间保存不同的数据类型 和不同长度的变量。

下例表示说明一个联合a_bc:

union a_bc{

int i;

char mm;

};

再用已说明的联合可定义联合变量。

例如用上面说明的联合定义一个名为lgc的联合变量, 可写成:

union a_bc lgc;

在联合变量lgc中, 整型量i和字符mm公用同一内存位置。

当一个联合被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度。

联合访问其成员的方法与结构相同。同样联合变量也可以定义成数组或指针,但定义为指针时, 也要用"->;"符号, 此时联合访问成员可表示成:

联合名->成员名

另外, 联合既可以出现在结构内, 它的成员也可以是结构。

例如:

struct{

int age;

char *addr;

union{

int i;

char *ch;

}x;

}y[10];

若要访问结构变量y[1]中联合x的成员i, 可以写成:

y[1].x.i;

若要访问结构变量y[2]中联合x的字符串指针ch的第一个字符可写成:

*y[2].x.ch;

若写成"y[2].x.*ch;"是错误的。

2. 结构和联合的区别

结构和联合有下列区别:

1) 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合转只存放了一个被选中的成员, 而结构的所有成员都存在。

2) 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。

下面举一个例了来加对深联合的理解。

main()

{

union{ /*定义一个联合*/

int i;

struct{ /*在联合中定义一个结构*/

char first;

char second;

}half;

}number;

number.i=0x4241; /*联合成员赋值*/

printf("%c%c\n", number.half.first, mumber.half.second);

number.half.first='a'; /*联合中结构成员赋值*/

number.half.second='b';

printf("%x\n", number.i);

getch();

}

输出结果为:

AB

6261

从上例结果可以看出: 当给i赋值后, 其低八位也就是first和second的值;当给first和second赋字符后, 这两个字符的ASCII码也将作为i 的低八位和高八位。

C语言共同体问题

结果应该是输出一个随机数!有这样几个概念关于共用体,也就是你说的共同体:

1、共用体是几种不同的变量存放在同一内存当中,即在内存中占同一位置

2、同一内存段可以用来存放几种不同类型的成员,但是在每一瞬只能放其中的一种,而不是同时存放几种类型。也就是每一瞬只有一个成员起作用!

3、共用体变量中起作用的成员是最后一次存放的成员。根据以上原则来看你这道题:#include "stdio.h"union un{int i;char c[2];} //共用体变量定义完成后应当以分号结束,此处应该加一个分号main(){union un x; //定义共用体变量xx.c[0]=10; //字符数组第一个字符位置存放整型10,字符变量和整型变量可以相互转换x.c[1]=1; //字符数组第二个字符位置存放整型1//至此,共用体变量x.c成员被赋值,其中x.c[0]==10,x.c[1]==1,而x.i不起作用printf("\n%d",x.i); //因为x.i没有被赋值,所以它的值由内存自动分配,所以会产生随机数}...

延伸阅读:

跪求数据结构课程设计C语言版代码感激不尽在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时...

共同体是什么意思共同体,顾名思义,就是人们在共同条件下结成的集体。在这个共同体里,我们会发生许许多多的事情,有些令人快乐,有些令人感动。每一件事情,可能就像雨滴一样,有一些,或许落在湿漉漉的地...

海角七号里面那七封信分别是什么意思第一封 友子,太阳已经完全没入了海面 我真的已经完全看不见台湾岛了 你还站在那里等我吗? 友子, 请原谅我这个懦弱的男人 从来不敢承认我们两人的相爱 我甚至已经忘记 我是如何...

没学过C语言可以学C语言数据结构与算法吗你好 一点小建议希望能对你有帮助 (1)学算法 学习算法和具体的语言还是有一定的联系,比如说你的算法最后要用c语言来实现,因为c是面向过程的,所以这和用面向对象的语言如c++来实...

数据结构与c语言是什么关系数据结构的主要作用是帮助你提升自己的编程思维!使你编写程序的时候有一个好的思维和框架!使你写的代码和程序有一个好的框架!数据结构研究的是数据的逻辑结构、存储结构(物理结...

C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...

休戚与共一词的意思是什么呢休戚与共一词的意思是什么呢:在使用“休戚与共”时,不少人往往会 忽略该词中的“休”或“戚”,导致词语误用。 例如一篇消息的标题这样写道: 《中国联通抗震救灾系列报道之八方...

程序化交易里面主流的语言是C请问程序化交易系统是如何实现的?用的是什么编程语言?怎么测试:语言只是工具,各有优势,用自己顺手的就行了,但对于通常的金融交易来讲,大部分语言效率都足够了,不明白为什么一直有这...

外贸术语:FOB CIF C F CFR分别都是什么意思在外贸出口中LC CFR FOB是什么意思:简单的说: FOB, FREE ON BOARD离岸价,货物越过船舷以前的所有费用和风险发货方承担. CIF,COST INSURANCE FREIGHT到岸价加保险,货物到目的港...

推荐阅读
图文推荐
栏目列表