C中的i++和++i有啥区别? [复制]
Posted
技术标签:
【中文标题】C中的i++和++i有啥区别? [复制]【英文标题】: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”);
【问题讨论】:
复制:***.com/questions/484462/… 下次请使用搜索工具... 重复问题有标题中问题的答案。但是您提供的示例代码显示了for
循环中使用的增量运算符。在这种情况下,区别是无关紧要的。规范的风格是i++
,但唯一重要的是你选择一个并与它的使用保持一致。 (更详细的信息是here。)
@cody 你能解释一下代码以及具体如何工作吗!
你有两个嵌套循环(意味着一个在另一个里面)和一个二维数组。循环只是遍历数组的每个维度。找出会发生什么的最简单方法是编译它并查看!关键在于i++
和++i
在for
循环中 之间的选择并不重要。
【参考方案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 循环中,所以什么都没有;两者都没有性能优势。
【讨论】:
呃,你能解释一下有什么区别吗?在一个for循环的声明中,一个int上的i++
和++i
是完全一样的。
***.com/questions/4706199/…【参考方案6】:
++i Increments $i by one, then returns $i.
i++ Returns $i, then increments $i by one.
【讨论】:
$i
?那应该是哪种语言?以上是关于C中的i++和++i有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章