【问题标题】:Why is semicolon used in for loop instead of coma?为什么for循环中使用分号而不是逗号?
【发布时间】:2015-10-17 11:59:09
【问题描述】:

通常,C 中的所有函数参数都用逗号分隔,,例如printf("Data",&a);

但是对于一个for 循环参数是用分号分隔的(for(i=0;i<5;++i))为什么会这样呢?

【问题讨论】:

  • 1.语句由分号分隔。 2.由此产生的歧义会产生问题。 3. 因为 C 标准是这么说的。
  • for 不是函数,它是语言的关键字。

标签: c function loops


【解决方案1】:

因为comma 是一个操作员,它允许人们做类似的事情

for (i=0,j=5; i<5; ++i, ++j)

PS:for 是关键字而不是上面指出的函数

**ISO/IEC 9899:1999 §6.8.5.3 The for statement**

The statement

for ( clause-1 ; expression-2 ; expression-3 ) statement

behaves as follows: The expression expression-2 is the controlling expression that is evaluated before each execution of the loop body.

表达式 expression-3 在之后被评估为 void 表达式 循环体的每次执行。如果第 1 条是声明,则 它声明的任何变量的范围是声明的其余部分 以及整个循环,包括其他两个表达式;它是 在第一次评估之前达到执行顺序 控制表达。如果 Clause-1 是一个表达式,则对其进行评估 作为控制的第一次评估之前的无效表达式 表达式.133)

Both clause-1 and expression-3 can be omitted. An omitted expression-2 is replaced by a nonzero constant.

133) Thus, clause-1 specifies initialization for the loop, possibly declaring one or more variables for use in the loop; the

控制表达式,表达式 2,指定进行的评估 在每次迭代之前,这样循环的执行将一直持续到 表达式比较等于 0;和 expression-3 指定一个 每次之后执行的操作(例如递增) 迭代。

【讨论】:

  • 你有这方面的参考吗?这似乎不太可能。
猜你喜欢
  • 1970-01-01
  • 2015-03-15
  • 2011-03-23
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
相关资源
最近更新 更多