当前位置: 代码迷 >> 综合 >> typedef union
  详细解决方案

typedef union

热度:31   发布时间:2023-12-10 13:38:04.0

typedef :最基本的功能是给数据类型起个别名

union 共用体

注意两点

1 共用体的大小由里面最大的数据类型大小来决定

2 共用体顾名思义,里面的成员都是共享一块内存,对后面的一个成员赋值,会覆盖前面的成员的值(也不奇怪,因为他们共享一块内存。但前提是成员所占字节数相同,当成员所占字节数不同时只会覆盖相应字节上的值,比如对char成员赋值就不会把整个int成员覆盖掉,因为char只占一个字节,而int占四个字节)

#include<stdio.h>
#include<conio.h>
typedef union{
char c;
int a;
int b;
}Demo;
int main(int argc,char **argv)
{
    Demo d;
    d.a=10;
    d.b=12;
    d.c='H';
printf("size:%d\n",sizeof(d));
printf("%c %d\t\t %d\n",d.c,d.a,d.b);
getch();
return 0;
}

运行结果是

4

H 72 72

因为前面的结果,完全被后面的覆盖掉了

大小写字母和数字的ascii码值是

a-z:97-122

A-Z:65-90

0-9:48-57
  相关解决方案