What is the difference between these two for loops in C?
本问题已经有最佳答案,请猛点这里访问。
1 2 | int i; for(i = n; i --> 0;) |
和
1 | for(i = n; i > 0; --i) |
它们产生了不同的结果。
对于第一个,在执行循环体之前,
差异是实际减少
第二个传统版本在执行循环体之后,在再次检查条件之前,递减
在执行循环体之前,第一个版本会减少
在传统的版本中,循环体总是看到与检查条件部分相同的值。
1 2 | int i; for(i = n; i --> 0;) |
和
1 | for(i = n; i > 0; --i) |
它们产生了不同的结果。
对于第一个,在执行循环体之前,
差异是实际减少
第二个传统版本在执行循环体之后,在再次检查条件之前,递减
在执行循环体之前,第一个版本会减少
在传统的版本中,循环体总是看到与检查条件部分相同的值。