请大家帮忙运行下,该如何解决
请大家帮忙运行下
main()
{
struct test
{
int m1; char m2; float m3;
union uu{ char u1[5]; int u2[2];} ua;
}myaa;
printf( "%d\n ", sizeof(struct test));
}
这个是个小题目,看sizeof(struct test)的结果,我觉得是16拉,答案是12,可我的机器运行结果是20,真是奇怪
------解决方案--------------------
i=0的时候,跳到case 0,一路向下执行下去:+2+3+5=10
i=1的时候,跳到case 1, 一路向下执行下去: +3+5=8
i=2....................................: +3+5=8
i=3....................................: +2+3+5=10
i=4............default ..................: +5=5
case后面不跟break的话,它会一直走遍下面所有的分支语句的。
------解决方案--------------------
int是2字节还是4字节,是cpu/操作系统决定的,C/C++相同。
在windows95之后,int就都是4字节的了。
TC2/BC31下int是2字节的,是因为它们其实跑在8086虚拟机模式下。
扔了你手里int还是2字节的所有工具或者资料吧,都是12年以前的东西了,早过时了。
------解决方案--------------------
第一道:应该是20
第二道:41
------解决方案--------------------
第一个考虑对齐
第二个考虑break
------解决方案--------------------
这个:
顺便还有这个 运行出来的结果居然是41,答案是31,晕了
main()
{
int a = 0, i;
for (i=0; i < 5; i++)
{
switch(i)
{
case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
}
}
printf( "%d\n ", a);
}
a=(2+3+5)+(3+5)+(3+5)+(2+3+5)+5=41;
里面没有 break;这个的。
main()
{
struct test
{
int m1; char m2; float m3;
union uu{ char u1[5]; int u2[2];} ua;
}myaa;
printf( "%d\n ", sizeof(struct test));
}
这个是个小题目,看sizeof(struct test)的结果,我觉得是16拉,答案是12,可我的机器运行结果是20,真是奇怪
------解决方案--------------------
i=0的时候,跳到case 0,一路向下执行下去:+2+3+5=10
i=1的时候,跳到case 1, 一路向下执行下去: +3+5=8
i=2....................................: +3+5=8
i=3....................................: +2+3+5=10
i=4............default ..................: +5=5
case后面不跟break的话,它会一直走遍下面所有的分支语句的。
------解决方案--------------------
int是2字节还是4字节,是cpu/操作系统决定的,C/C++相同。
在windows95之后,int就都是4字节的了。
TC2/BC31下int是2字节的,是因为它们其实跑在8086虚拟机模式下。
扔了你手里int还是2字节的所有工具或者资料吧,都是12年以前的东西了,早过时了。
------解决方案--------------------
第一道:应该是20
第二道:41
------解决方案--------------------
第一个考虑对齐
第二个考虑break
------解决方案--------------------
这个:
顺便还有这个 运行出来的结果居然是41,答案是31,晕了
main()
{
int a = 0, i;
for (i=0; i < 5; i++)
{
switch(i)
{
case 0:
case 3: a+=2;
case 1:
case 2: a+=3;
default: a+=5;
}
}
printf( "%d\n ", a);
}
a=(2+3+5)+(3+5)+(3+5)+(2+3+5)+5=41;
里面没有 break;这个的。