📅  最后修改于: 2020-10-23 05:53:53             🧑  作者: Mango
#include
union xyz {
char x,y,z,a,b,c,d,e;
int i;
}xyz;
main()
{
printf( "%d", sizeof( xyz ));
}
正确的选项是(a)。
说明:
Union是C编程中使用的特殊数据类型,它允许将不同的数据类型存储在同一内存位置。
联合的所有元素共享公共内存,联合大小是最大的元素大小。
因此,程序的输出或联合定义的大小为4。
#include
main()
{
struct { int y;} var = {4}, *a = &var;
printf("%d %d %d",var.y,a->y,(*a).y);
}
正确的选项是(c)。
说明:
使用指针访问结构元素的两种可能方法是使用*或->(箭头运算符)。
因此,程序的输出为4 4 4
struct employ
{
int j;
char ch;
long int a;
};
正确的选项是(b)。
说明:
编译器可以通过在结构中的第一个字符中填充另一个字节来保留结构中的漏洞,以确保整数存储在某个位置。
此外,整数后面还有2个额外的字节,以确保将长整数存储在指定地址(4的倍数)中。
因此,该结构并不总是占据7个字节。
正确的选项是(d)。
说明:
在C语言中,语言规范将switch / casev语句定义为使用int值,因此我们不能在switch / case语句中使用浮点值。
正确的选项是(a)。
说明:
诚然,C语言允许使用嵌套联合。因此,我们可以在C程序的联合内部使用联合。