c语言中程序中能不能存在两个不相关的结构体

如题所述

完全可以,结构体只是一个数据的组织形式,可以简单理解为一种数据的类型,所以两个不相干的结构体完全不影响
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-19
union是用来定义联合体的关键字,union维护足够的空间来置放多个资料成员中的最大的“一种”,而不是为每一个资料成员配置空间,在union中所有的资料成员共用一个空间,同时间只能储存其中一个成员的资料。
可以得出该共用体在内存中占用4个字节。
k.a[0]=10000;
k.a[1]=15000;
为k的int
a[2]成员赋值,即该内存的内容是[00111010]
[10011000]
[00100111]
[00010000]将这4个字节换算成符点数就是0.001161.
scanf
("%s",k.d);
//k.d[]="abcd"
因为scanf把4个输入压栈后再出栈对4个字符变量赋制值,则内存结构为:
[01100100]
[01100011]
[01100010]
[01100001]
d[3]
d[2]
d[1]
d[0]
c(4个字节)
b(前两个字节)
a[1](前两个字节)
a[0](后两个字节)
将这4个字节换算成符点数c就是:16777999408082104400000.000000.
至于上面的数字是怎么得来的,那要考虑浮点数在计算机中的储存结构问题了.在存储1个浮点数的32位内存中,
第一位是符号位,下来的8位是指数位,后面的23位是尾数位.
[01100100]
[01100011]
[01100010]
[01100001]
换算成浮点数的算法是:
第一位为0:正数
下来的8位是:[11001000],减去[01111111]为[1001001].所以指数为73
再下来的23位是1100011[01100010]
[01100001].所以尾数为
(1.11000110110001001100001)b
=
2^0+2^(-1)+2^(-1)+2^(-6)+2^(-7)+2^(-9)+2^(-10)+2^(-14)+2^(-17)+2^(-18)+2^(-23).
最后结果=底数^指数
可能你还会问为什么位数一样,结果还是有差距,那是因为浮点数的计算精度问题.浮点数的精度是有限的.
第2个回答  2015-08-25
完全可以啊,结构体和其他的变量类型一样用,没什么限制
第3个回答  推荐于2017-12-26
定义多少个不同的结构体,原则上是没有限制的。本回答被网友采纳
第4个回答  2015-08-25
可以有很多个

c语言中程序中能不能存在两个不相关的结构体
完全可以,结构体只是一个数据的组织形式,可以简单理解为一种数据的类型,所以两个不相干的结构体完全不影响

C语言中,两种不同的结构体如何放在一个数组中?
用memcpy把结构体拷入数组即可,解析时反过来拷给结构体就行

C语言 ,一个程序里两个不同结构体里的变量名能相同吗?用的时候会发生内...
访问结构体的成员变量的方式是结构体变量名.成员变量名或结构体指针名->成员变量名,所以两个不同的结构体当中的成员变量不会有命名冲突。

C语言可以在一个链表里保存两个结构体吗
当然可以拉 typedef struct ST1 ST1_T;typedef struct ST2 ST2_T;typedef union { ST1_T st1;ST2_T st2;} ST;然后将ST作为 链表 的基本数据类型就是了 如果是同时存储的话,那么:typedef struct { ST1_T st1;ST2_T st2;} ST;

结构体和共用体在c语言中是怎么用的
结构体和共用体其实都是用来描述一组由不同类型变量的集合,也就是说结构体和共用体中都可以同时存在int型、char型、float型等等!!但是不同的是,结构体内所定义的每一个变量都有其自己独立的存储空间,互不干涉,比如一个结构体中有一个int型、同时有一个char型,那么它们是独立的,总共占用三个...

c语言,结构体
在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体不能包含函数。在面向对象的程序设计中,对象具有状态(属性)和行为,状态保存在成员变量中,行为通过成员方法(函数)来实现。C语言中的结构体...

结构体与共用体的不同?
结构体与共用体是C语言中两种不同的数据类型。结构体由多个数据元素组成,分配的空间至少等于所有数据元素长度之和,因数据对齐原因可能增加。例如,定义一个结构体包含`int a`、`long b`、`long long c`、`char *d`和`char e`,实际分配的空间为24字节。共用体则允许同一时刻存储定义中的一个数据...

C语言结构体定义
在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明。

struct是什么意思在c语言程序中?
在C语言中,struct关键字用于定义数据结构,这种结构可以包含多个不同类型的数据。结构体允许我们创建一个包含多个不同类型数据的单一数据类型。通过这种方式,我们可以组织数据,使其更符合特定问题的需求。结构体可以包含不同类型的数据,如整型、浮点型、字符型等,甚至可以包含其他结构体。2. 结构体的...

c语言中结构体成员不能是结构体吗
c语言中结构体成员的类型可以是C语言中的任何数据类型,当然也包括结构体类型。

相似回答