虽然我不会自己写,但以下语句的预期结果是什么,其中 A
(保证为零或正整数)大于 1?
返回一个 || 1;
在许多语言中,我希望返回 A
,除非 A
的值为零,在这种情况下为 1。
我手边没有我的 C 书,但我注意到在现实中,似乎总是返回值 1。这是编译器优化的结果还是考虑到表达式的潜在歧义,返回值是不确定的吗?
最佳答案
标准说
The
||
operator shall yield 1 if either of its operands compare unequal to 0; otherwise, it yields 0. The result has type int.
参见 standard 的第 6.5.14 节.
关于C:当 A >1 时,语句 'return A || 1' 会返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3450971/