【发布时间】:2017-08-14 15:54:30
【问题描述】:
是否可以(定义的行为)将逻辑运算的结果相加(因为它们应该只是 0 或 1)?
如果我想计算大于零的数字,我可以这样做吗?(或者有更好的方法吗?)
int a[3] = {1,-5,3};
int result = 0;
for( int i = 0 ; i<3; i++)
{
result += a[i]>0;
}
【问题讨论】:
-
a[i]>0是 0 或 1。是的,它已定义。 -
是的,这是非常好的代码。所有布尔运算(例如关系运算符)都保证返回值为 1 或 0 的
int。