struct
?student

{
char
?name[
10
];
long
?sno;
char
?sex;
float
?score[
4
];
}
?;


main()

{
struct
?student?a[
1
];

??
long
??sno?;
??
char
?name[
10
];
??
float
?score[
4
];
??
char
?sex?;

printf(
"
\n\n%d\n
"
,
sizeof
(a));
printf(
"
%d\n
"
,
sizeof
(score)
+
sizeof
(sex)
+
sizeof
(name)
+
sizeof
(sno));

}
輸出的都是 31
?
typedef?union?student


{char?name[10];
long?sno;
char?sex;
float?score[4];
}?Stu??;


main()


{?Stu?a[1];

??long??sno?;
??char?name[10];
??float?score[4];
??char?sex?;

printf("\n\n%d\n",sizeof(a));
printf("%d\n",sizeof(score)+sizeof(sex)+sizeof(name)+sizeof(sno));

}輸出的為16,31,
結(jié)構(gòu)和聯(lián)合有下列區(qū)別:
1. 結(jié)構(gòu)和聯(lián)合都是由多個(gè)不同的數(shù)據(jù)類(lèi)型成員組成, 但在任何同一時(shí)刻, 聯(lián)合轉(zhuǎn)只存放了一個(gè)被選中的成員, 而結(jié)構(gòu)的所有成員都存在。
2. 對(duì)于聯(lián)合的不同成員賦值, 將會(huì)對(duì)其它成員重寫(xiě), 原來(lái)成員的值就不存在了, 而對(duì)于結(jié)構(gòu)的不同成員賦值是互不影響的。
????????? 計(jì)劃開(kāi)始學(xué)習(xí) vc++