下面程序的运行结果是( )。 #include <stdio.h> union data {int i; char c; }; struct {char a[2]; int

下面程序的运行结果是( )。
#include <stdio.h>
union data
{int i;
char c;
};
struct
{char a[2];
int i;
union data d;
}p;
void main()
{printf("%d\n",sizeof(p));
}
A. 5
B. 6
C. 7
D. 8

如果int占2个字节,char a[2]占2个字节, i占2个,d占2个,所以选B
如果int占4个字节,那么因为字节对齐的缘故char a[2]占4个字节, i占4个,d占4个,就共占12个字节
温馨提示:内容为网友见解,仅供参考
无其他回答

...#include <stdio.h> union data {int i; char c; }; struct {char...
如果int占4个字节,那么因为字节对齐的缘故char a[2]占4个字节, i占4个,d占4个,就共占12个字节

...#include <stdio.h> main() {char a[]="morning",t; int i,j=0...
但是作为字符串,还会有一个\/0,也就是字符串结束符,这个结束符的下标为7,就是说a[7]就是结束符。过程是这样的:第一次循环:i=1;j=0;a[i] 为o,a[j]为m,m小于o,所以把i的值赋给j,此时j=1 第二次循环:i=2;j=1 a[i]为r a[j]为o o小于r,所以把i的值赋给j,此时j=...

下面程序段的运行结果是( )。 char *p="abcdefgh"; p+=3; printf("%d...
这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,而c语言中默认在ABCD后加个结束符的,所以答案就是4了。

下面程序的运行结果为( )。 #include class A { int num; public: A...
所以最终打印结果 为21

2. 下面程序段的运行结果是 。 x=y=0; while (x<15) y++,x+=++y...
include<stdio.h> void main(){ int x=0,y=0;while (x<15){ y++;x+=++y;} printf("%d,%d ",y,x);} 程序结果为 8,20

设有说明: union data { int i; struct { int x;chary;
union所占的内存,是其中的元素中占内存最大的元素的字节数。(因为union内不同元素之间共享同一块内存)struct 所占内存是所有元素占内存之和,并且要考虑内存对齐。struct 是 4 + 1; sizeof(int) + sizeof(char) 然后考虑内存对齐,struct所占内存得是int类型的整数倍,所以是8字节。union中除了...

10. 下面程序的运行结果是 A 。 main() { int a,b; a=32767; b=a+1...
include main(){ long a,b;a=32767;b=a+1;printf("a=%d,b=%d\\n",a,b);} 这个a当为二进制时就超过了.所以你要改变类型.

union用法c语言
下面是一个简单的`union`使用示例:```c include union Data { int i;float f;char str[20];};int main() { union Data data;data.i = 10;printf("Integer: %d\\n", data.i);data.f = 220.5;printf("Float: %f\\n", data.f);\/\/ 注意:直接以str方式访问可能不会得到预期结果,...

共用体变量定义为"union data{char ch;int x;}a;",下列错误的是
A错误,因为ch和x共用一个内存空间,所以叫做共用体。但是它有多大呢? 在某些系统int是4个字节的,char是1个字节。所以a就是最大的那个,也就是4个字节,这样的话既可以装下int类型的x,也可以装下ch。找工作的时候,考这个喔,呵呵。

C语言求助,题目有图,希望过程详细一些? 。。
C不完全正确,不能像结构体那样对所有成员初始化,共用体的成员地址不是独立的,共享同一段内存。(但是可以用一个常量来初始化)下面我写的代码演示上面的特殊使用情况:include <stdio.h> union data{ int n;char c;short s;};define M 5 int main(){ void fun(union data a);\/\/共用体做...

相似回答