C 什么是<&引用;用表达式j=i++&书信电报;你怎么办?

C 什么是<&引用;用表达式j=i++&书信电报;你怎么办?,c,operator-keyword,increment,C,Operator Keyword,Increment,如果i小于5,则运算符返回1,否则返回0。请注意,增量不会影响比较,直到下一次循环迭代。代码检查i是否小于5,然后增量i。比较结果存储在j中 这是一个相当模糊的方法,使这样一个循环。不太可读。当循环执行i++时,实际上是在增加i的值。状况 j=i++=5时结束。 main() { int i = 1, j = 1 ; for ( ; j ; printf ("%d%d\n", i,j)) { j = i++ < 5 ; } return 0; }

如果
i
小于5,则运算符返回
1
,否则返回
0
。请注意,增量不会影响比较,直到下一次循环迭代。

代码检查
i
是否小于5,然后增量
i
。比较结果存储在
j


这是一个相当模糊的方法,使这样一个循环。不太可读。

当循环执行i++时,实际上是在增加i的值。状况 j=i++<5将检查返回值“1”或“0”,因此相应地,当输出打印语句printf(“%d%d\n”,i,j)将打印时

i=2;j=2返回1 so打印(2,1) i=3;j=3返回1 so打印(3,1)

依此类推,直到条件变为false,最终输出为j=返回“0”,表示i=6


这将给你一个ans(6,0)

No-后增量发生在比较之后。@BartFriederichs我在网上遇到了这个问题。质量差的答案-后增量如何?增量不会直接影响比较。好的-那么为什么不在你的答案中提一下呢,也许还可以解释一下,在比较之后会发生后增量?所以,所有的问题和答案都是高质量的,所以像这样一个简洁而不完整的答案并不是很有用。@Paul R:只是尽量让答案简洁明了而已。但你是对的;值得一提的是,for循环在j变为0时结束,即当j>=5时结束。
main()
{
   int i = 1, j = 1 ;
   for ( ; j ; printf ("%d%d\n", i,j))
   {
      j = i++ <  5 ;
   }
   return 0;
}
   21
   31
   41
   51
   60