这个简单的程序是如何运作的?

How does this litle program work?

本文关键字:何运作 程序 简单      更新时间:2023-10-16

我试图检查有关C++的QA练习,一个问题让我发疯!

typedef struct {
unsigned int i : 1;
} myStruct;
int main()
{
myStruct s;
s.i = 1;
s.i++;
cout << s.i;
return 0;
}

问题说输出是什么:0/1/2/3/-1/Seg 错误?

我确实检查了2,这是一个错误的答案:D,那么为什么程序显示0

您需要熟悉位域。

默认情况下,int 的大小为 32 位(4 字节(。但是使用给定的表示法,您可以指定变量使用多少位。

因此,当您将值从 1 递增时,它会溢出并返回零。