小编dra*_*ine的帖子

C 上的短路评估

我正在从 Kelley-Pohl 的 A Book on C 中学习 C,有一个我不明白的练习:

int a = 0, b = 0, x;

x = 0 && (a = b = 777);
printf("%d %d %d\n", a, b, x);
x = 777 || (a = ++b);
printf("%d %d %d\n", a, b, x);
Run Code Online (Sandbox Code Playgroud)

他们只是说想象输出并将其与真实输出进行比较。我以为输出会是

777 777 0

778 778 1

但它是

0 0 0

0 0 1

c operators short-circuiting logical-operators

3
推荐指数
2
解决办法
3090
查看次数