c++ - for循环在循环条件内执行,c++

标签 c++ for-loop

我想用 121 个整数填充一个 int 数组,从 0 到 120。有什么区别:

  1. for(int i = 0; i < 122; arr[i] = i, i++){}
  2. for(int i = 0; i < 122; i++){arr[i] = i;}

我检查了一下,除了warning: iteration 121u invokes undefined behavior ,我认为这与我的问题无关,代码编译正常并获得预期结果

编辑:感谢所有注意到可读性问题的人,这当然是真的,但我想看看这两行是否有不同的解释,所以我检查了 C 中的这两行到汇编,它们看起来相同

最佳答案

没有,结果是一样的。 第一个结构使用逗号运算符;逗号运算符的左侧排在右侧之前,因此 arr[i] = i, i++定义明确

不过,第二个更容易阅读,特别是如果选择省略 {}完全:

for(int i = 0; i < 122; arr[i] = i, i++); //this ; is evil, don't write such code. 

还有,如果你想填满120个元素,你应该使用i < 120 .

关于c++ - for循环在循环条件内执行,c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235694/

相关文章:

c++ - 开发 Windows 窗体应用程序?

c++ - 一个流是如何与另一个流联系在一起的?

c++ - OpenGL 法线贴图问题 - 法线可能朝向错误的方向?

c++ - Base64 在编码特殊字符时不起作用

java - OOP的缺点?

java - PaintComponent 执行了两次

c - 完美数字错误?

c++ - C++中什么情况下会得到nan?

c++ - 这个for循环中 "int factorial = 1"的解释

ios - 使用循环生成 uisegmentedcontrol 按钮