【问题标题】:What's exactly difference between i++ and ++i in C? [duplicate]C中的i++和++i有什么区别? [复制]
【发布时间】:2011-08-06 21:01:06
【问题描述】:

可能重复:
(C) What is the difference between ++i and i++

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};



    for(i=0;i<3;i++)
{ 
          for(j=0;j<4;j++)
           {
            printf(“%-4d”,a[i][j]);
           }
           printf(“\n”);
       }

【问题讨论】:

  • 下次请使用搜索工具...
  • 重复问题有标题中问题的答案。但是您提供的示例代码显示了for 循环中使用的增量运算符。在这种情况下,区别是无关紧要的。规范的风格是i++,但唯一重要的是你选择一个并与它的使用保持一致。 (更详细的信息是here。)
  • @cody 你能解释一下代码以及具体如何工作吗!
  • 你有两个嵌套循环(意味着一个在另一个里面)和一个二维数组。循环只是遍历数组的每个维度。找出会发生什么的最简单方法是编译它并查看!关键在于i++++i for 循环中 之间的选择并不重要。

标签: c arrays


【解决方案1】:

++i 是前置增量,i++ 是后置增量。

【讨论】:

  • 如果有人不知道“前置增量”和“后置增量”是什么意思,这并不是很有帮助。如果他们问这个问题,他们可能并没有很好地理解其中的区别。
【解决方案2】:
int i = 2;

int a = ++i; // a is 3, i is 3
int b = i++; // b is 3, i is 4

【讨论】:

    【解决方案3】:

    在上述情况下,您将无法识别它。

    但本质上是这样的:

    int x = a[i++]先从à读取,然后增加i

    int x = a[++i]首先增加i,然后从a读取

    【讨论】:

      【解决方案4】:

      i++是后自增运算符,即i的当前值用于运算,运算后该值加1。

      ++i 是自增运算符,即 i 的值自增,并在运算中使用新的值。

      【讨论】:

        【解决方案5】:

        在那种情况下,因为类型是 int 并且它发生在 for 循环中,所以什么都没有;两者都没有性能优势。

        【讨论】:

        【解决方案6】:
        ++i Increments $i by one, then returns $i.
        i++ Returns $i, then increments $i by one.
        

        【讨论】:

        • $i?那应该是哪种语言?
        猜你喜欢
        • 2017-10-23
        • 2013-05-22
        • 1970-01-01
        • 2014-12-25
        • 2010-10-11
        • 1970-01-01
        • 2011-01-19
        • 2011-03-21
        相关资源
        最近更新 更多