C:当 A >1 时,语句 'return A || 1' 会返回什么?

标签 c objective-c

虽然我不会自己写,但以下语句的预期结果是什么,其中 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/

相关文章:

c - 在 C 中处理指向 2D 数组的指针时出现不稳定的行为

ios - 如何在UITableView上更改Pull的文本颜色以刷新?

ios - 正确更新 NSManagedObject 关系

objective-c - Xcode 在调试时评估表达式

objective-c - 从在后台线程上执行的其他方法内部在主线程上执行方法?

c - C 中的快速交错操作?

c - 修改循环内的 for-counter

c - 数组到变量

c - 使用 atoi

ios - 如何检测照片库中的图像是iPhone相机拍摄的还是导入的