#include<stdio.h> #include<stdlib.h> #include<string.h> union info{ int price; char str[30]; }data1,data2,*p,data[10]; //第一種建立形式 union info dataA,dataB,*q,dataN[10];//第二種形式 union{ //第三種形式:匿名共用體,限制共用體的數量 char str[30]; int price; }a,b,c; void main(){ union info in1; in1.price=40; strcpy(in1.str,"聯想"); printf("%d\n",sizeof(union info));//共用體的長度爲其中某個變量的最長長度 printf("%d,%s\n",in1.price,in1.str);//任什麼時候刻,共用體同時只能有一個變量存在 system("pause"); }
#include<stdio.h> #include<stdlib.h> #include<string.h> union dataA{ int a; short b; char c; }; union dataB{ double b; char str[9]; }; void main(){ //共用體的大小必須至少包含最大的成員數據,能夠整除最小的成員數據 printf("%d\n",sizeof(union dataA)); printf("%d\n",sizeof(union dataB));//填充現象:共用體的大小必定能夠被最小類型整除 system("pause"); }
#include<stdio.h> #include<stdlib.h> #include<string.h> union info{ int price; char str[30]; }; void main(){ union info in1; in1.price=40; strcpy(in1.str,"聯想");//共用體起做用的是最後一個賦值的成員變量 printf("%d,%s\n",in1.price,in1.str); union info in2={30};//大括號初始化時,只能初始化第一個 in2=in1;//共用體能夠直接賦值 printf("%d,%s\n",in2.price,in2.str); system("pause"); }
#include<stdio.h> #include<stdlib.h> #include<string.h> union info{ int price; char str[30]; }; void main(){ union info info={1}; //strcpy(info.str,"china"); printf("%d,%s\n",info.price,info.str); union info *p=&info; printf("%d,%s\n",p->price,(*p).str); system("pause"); }