共用体定义形式如下: union 共用体名 { 类型名 成员1; 类型名 成员2; … 类型名 成员 n; } 由于各个成员变量在内存中都是用同一段存储空间,因此共用体变量的长度等于最长成员的长度。
此外介绍一下数组在内存中的存储方式。例如 int a[5];
#include<stdio.h>
int main() {
union key
{
int k
;
char ch
[2];
}u
;
u
.k
= 258;
printf("%d %d\n", u
.ch
[0], u
.ch
[1]);
return 0;
}
输出结果为2 1 成员最长长度为int 4个字节 ,长度为4 。数据在计算机内存中是以十六进制存储的,258转化为十六进制是102,即0x00 00 01 02,则ch[0]=02,ch[1]=01。
调试如图: