KAIHATSUGIKEN GROUP
********************************************************************************
21 共用体
************
構造体は各校性要素に別々の記憶領域を与えるのに対し
共用体は各校性要素に同じ記憶領域を割り当てるもの。
************
main()
{
union abc{int a,b;};
union abc x;
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;}; /* 共用体の型枠宣言 */
union abc x;
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x; /* 共用体の変数宣言 */
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x; /* 構造体と違ってこの記憶領域はx.a,x.bが共有するもの */
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x; /* &x.a=&x.b */
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x;
x.a=1; /* アドレス&x.aの記憶領域に1を代入 */
x.b=2;
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x;
x.a=1;
x.b=2; /* アドレス&x.bの記憶領域に2を代入 */
printf(%d,%d\n",x.a,x.b);
}
****
2,2
****
main()
{
union abc{int a,b;};
union abc x;
x.a=1;
x.b=2;
printf(%d,%d\n",x.a,x.b); /* x.a,x.bともに2を表示 */
}
****
2,2