通常,C中的所有函数参数用逗号分隔,例如逗号,
, printf("Data",&a);
。为什么分号用于循环而不是昏迷?
但是对于for
循环参数用分号分隔(for(i=0;i<5;++i)
)为什么会这样?
通常,C中的所有函数参数用逗号分隔,例如逗号,
, printf("Data",&a);
。为什么分号用于循环而不是昏迷?
但是对于for
循环参数用分号分隔(for(i=0;i<5;++i)
)为什么会这样?
因为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被评估为空表达式。如果子句-1是一个声明,则它声明的任何变量的范围是声明 的剩余部分和整个循环,包括其他两个表达式;在 控制表达式的第一次评估之前按执行顺序达到 。如果条款-1是一个表达式,它被评价 作为控制 expression.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;并且表达式-3指定在每次迭代之后执行的操作(例如递增)。
你有参考吗?这似乎是不太可能的原因。 – juanchopanza
1.语句由semicola分隔。 2.由此产生的不明确性会产生问题。 3.因为C标准是这样说的。 – Downvoter
'for'不是函数,它是语言的关键字。 – jbm