【发布时间】:2013-06-16 05:01:15
【问题描述】:
#include <stdio.h>
int main()
{
struct bitfield
{
unsigned a:5;
unsigned c:5;
unsigned b:6;
} bit;
char *ptr;
struct bitfield bit1={1,3,3};
ptr=&bit1;
ptr++;
printf("%d",*ptr);
return 0;
}
这个问题的输出是 12。它是怎么来的?谁能解释一下? 我尽力解释它。
【问题讨论】:
-
我从来没有使用过位域,但由于 'ptr' 的类型是 'char*' 递增它会将它指向的地址更改 1 个字节(即 sizeof(char))
-
@nishantjr- 你能解释一下这对输出有何影响吗?
-
给我一点时间...我要写几个测试程序。你使用哪个编译器?
-
gcc 4.3.2 ideone.com/zazd1T
标签: c coding-style structure