假设我得到一个值i=0;
那么以下变量leftsmaller
是true
吗?
while(i<=0 || arr[i]<arr[j])
leftsmaller = true;
答案 0 :(得分:3)
零不小于零,i <= 0
变为1
,因为零小于或等于零。
答案 1 :(得分:2)
如果左侧小于或等于,则<=
(“小于或等于”)运算符返回true
。由于0
当然等于0
,因此此表达式将评估为true
,这将导致代码进入while
循环,分配true
} leftsmaller
。
答案 2 :(得分:2)
当然零不小于零,但i <= 0
变为1
,因为零小于或等于零。
答案 3 :(得分:1)
从未提及变量类型i
。
如果是unsigned i
,则测试的< 0
部分将失败。
如果是float i
,则测试的== 0
部分可能会失败 - 即使您发誓i
应该是0
,因为可以存储不准确的值