我见过一种特殊风格的代码,在我看来它是危险的,应该避免,但我在很多地方都看到过很多次,我很困惑我是否遗漏了什么。
int a[100];
/* Some code later */
for(i =0; (i < 100 && a[i] != 0); i++)
:
:
在上面的代码中,表达式 (i < 100 && a[i] != 0) 可能是从右到左计算的,在这种情况下,当 i == 100 时,我们将超出数组 'a 的范围'。
有人可以解释这是否是安全代码