Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对于循环条件内的循环执行,c++;_C++_For Loop - Fatal编程技术网

C++ 对于循环条件内的循环执行,c++;

C++ 对于循环条件内的循环执行,c++;,c++,for-loop,C++,For Loop,我想用121个整数填充一个整数数组,从0到120。以下两者之间的区别是什么: for(inti=0;i

我想用121个整数填充一个整数数组,从0到120。以下两者之间的区别是什么:

  • for(inti=0;i<122;arr[i]=i,i++){}
  • (inti=0;i<122;i++){arr[i]=i;}
  • 我检查了它,除了
    警告:迭代121u调用了未定义的行为
    ,我认为这与我的问题无关,代码编译得很好,得到了预期的结果


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

    这两行的最终结果将是相同的。但是,第二种方法更好,因为第一种方法牺牲了可读性而没有任何好处


    当人们通读代码时,他们希望
    循环与您在第二行中编写的方式相同。如果我单步执行代码并遇到第一行,我会停下来看一下为什么运行空的
    for
    循环,然后会意识到您正在使用逗号运算符设置
    for
    循环本身中的变量。读取代码时中断流,因此不推荐使用。

    无,结果将相同。 第一个构造使用逗号运算符;逗号运算符的左侧在右侧之前排序,因此
    arr[i]=i,i++
    定义良好

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

    for(int i = 0; i < 122; arr[i] = i, i++); //this ; is evil, don't write such code. 
    
    for(inti=0;i<122;arr[i]=i,i++)//这是邪恶的,不要写这样的代码。
    

    另外,如果你想填充120个元素,你应该使用
    i<120

    你能把arr声明放进去吗?可读性和可维护性是编程的一个重要方面。你认为哪一个更容易阅读和理解(因此更容易维护)?