¹²ÓÃÌ壺
¸ÅÄ¶à¸ö³ÉÔ±¹²ÓÃͬһ¿é¿Õ¼ä¡£°´ÆäÖÐËùÕ¼¿Õ¼ä×î´óÊÇÊý¾ÝÀàÐÍÀ´·ÖÅä¡£
¹Ø¼ü×Ö£º union
¶¨Òå¹²ÓÃÌåÀàÐÍ£º
Union ¹²ÓÃÌåÃû
{
²ÎÊýÁÐ±í£»
}£»
¹²ÓÃÌåµÄÀàÐÍ£º union ¹²ÓÃÌåÃû
¹²ÓÃÌåÃûÒ»°ãÓôóд±íʾ¡£
¶¨Òå¹²ÓÃÌå±äÁ¿£º
1. Ïȶ¨Òå¹²ÓÃÌåÀàÐÍ£¬Í¬Ê±¶¨Òå¹²ÓÃÌåµÄ±äÁ¿
2. Ïȶ¨Òå¹²ÓÃÌåÖ®ºó£¬ÔÙ¶¨Òå¹²ÓÃÌåµÄ±äÁ¿
3. ÔÚ¶¨Òå¹²ÓÃÌåµÄʱºò²»¼Ó¹²ÓÃÌåÃû£¬Í¬Ê±¶¨Òå¹²ÓÃÌåµÄ±äÁ¿¡£
Union PON
{
Int a;
Flaot b;
Double c;
}£»
³ÉÔ±ÁÐ±í£ºÊý¾ÝÀàÐÍ ±äÁ¿Ãû£»
Union PON f; // ¹²ÓÃÌå±äÁ¿µÄ¶¨Òå
¹²ÓÃÌå±äÁ¿µÄÒýÓãº
¹²ÓÃÌå±äÁ¿Ãû.³ÉÔ±Ãû
˵Ã÷£º 1. Ò»°ãÇé¿öϹ²ÓÃÌå²»½øÐгõʼ»¯£¬Èç¹ûÒª³õʼ»¯£¬Ôò³õʼ»¯Ò»¸öÖµ£¬²¢ÇÒÕâ¸öÖµ±»Ä¬ÈÏΪµÚÒ»¸ö³ÉÔ±±äÁ¿¡£¿Õ¼äµÄÀàÐÍÒ²ÊǸúµÚÒ»¸ö³ÉÔ±µÄÀàÐÍÆ¥Åä¡£
2. ¹²ÓÃÌå¸ú½á¹¹Ìå¿ÉÒÔ½øÐÐǶÌ×ʹÓá£
3. ¹²ÓÃÌå¿ÉÒÔ½øÐжà´Î¸³Öµ£¬µ«Ö»Äܸø¹²ÓÃÌåµÄ³ÉÔ±¸³Öµ£¬¸ø¶à¸ö³ÉÔ±ÒÀ´Î¸³Öµ£¬ÔòºóÃ渳ֵµÄ³ÉÔ±
»á¸²¸ÇÇ°ÃæµÄ¹²ÓÃÌå³ÉÔ±¡£
4£®¿ÉÒÔÔÚͬһ´æ´¢¿Õ¼äÏÂÃæ´æ´¢²»Í¬ÀàÐ͵ÄÊý¾Ý¡£
#include <stdio.h>
int main () { struct STU { int num; char name[10]; union PON { int b; char c; }t; }; struct STU a; scanf("%d",&a.num);
if(a.num > 10) { scanf("%s %c",a.name,&a.t.c); } else { scanf("%s %d",a.name,&a.t.b); }
if(a.num > 10) { printf("%s %c",a.name,a.t.c); } else { printf("%s %d",a.name,a.t.b); } return 0; } |
#include <stdio.h>
int main () { union PON { int a; char b; double c; }; union PON f = {97}; //¹²ÓÃÌåÖ»Äܳõʼ»¯Ò»¸öÖµ // printf("%d\n",sizeof(union PON)); // printf("%d\n",f.a); // printf("%c\n",f.b); //printf("%lf\n",f.c);
f.a = 66; f.b = 67; //printf("%d\n",f.a); //printf("%c\n",f.b); //printf("%lf\n",f.c);
f.c = 98; printf("%d\n",f.a); printf("%c\n",f.b); printf("%lf\n",f.c);
return 0; } |