在Objective-C中,&(和号)和&&或|(管道符号)和||之间的区别是什么?

8
我想知道Objective-C是否关心我写的是&还是&&?我相信一个和号(&)会或应该导致如果左边已经为false,那么右边就不会被评估。
这适用于Objective-C吗?
2个回答

23

是的。 在C和Objective-C中,运算符的功能是相同的。

就像在C中(或者如果您使用Objective-C++,则为C ++),&|是按位与,&&||是逻辑(并且短路)。按位运算符(&|不是短路的。

请参见{{link1:C和C ++中的运算符}}


1
所以我刚才搞错了。当左侧为false时,&&不会评估右侧,但&将无论如何都会评估两侧。正确吗? - Proud Member
4
& 没有布尔结果,而 && 有。将原句翻译为:& 表示按位与运算,不具备布尔结果;而 && 表示逻辑与运算,结果为 true 或 false。 - Wevah

3

Objective-C使用C的按位和逻辑运算符(&表示按位与,&&表示逻辑与)。单个&将同时计算两个表达式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接