读书人

C语言笔试的一路题

发布时间: 2013-10-14 12:54:46 作者: rapoo

C语言笔试的一道题
#include<stdio.h>
#include<string.h>

typedef union {int x;short k;char s[8];}Mode;
typedef struct {Mode m;long long x;int y;}Type;

int main(void)
{
Type t;
t.m.k = 1234;
t.m.x = 0x123456789;
strcpy(t.m.s,"\0\0\0\0\0");
printf("%d,%d,0x%x\n",sizeof(Type),sizeof(&t),t.m.k);
t.x = 1234;
t.y = t.x++;
printf("%d,%d\n",t.x,t.y);
return 0;
}
C语言笔试的一路题
我在VS2010和GCC下测试过,后面那个printf("%d,%d\n",t.x,t.y);输出的是1235,0
麻烦各位高手指点一下后面那个为什么是0??
[解决办法]
long long 类型占据了两个%d的位置,你运行出的界面中并未显示出t.y的值。
你在printf第一个参数里面再加一个%d就能打印t.y变量的值了

读书人网 >C语言

热点推荐