首页 > 解决方案 > 为什么 ”;” 不用于 for 循环中的 i++。不是所有的东西都必须以“;”结尾吗?

问题描述

为什么不在for 循环;之后使用?i++

考虑,

for (int i= 0; i < 50; i++) {

}

在这种情况下,为什么人们不添加;after i++

标签: c

解决方案


如果你写i++的是独立声明,你需要在它后面加上;

void foo(int i)
{
    i++   // syntax error, missing ';'
}

但是您不需要在for循环头中的第三个表达式之后放置分号,因为有一个右括号来结束它。这是关于 的规则for,而不是关于 的规则++。不管你在for循环头中放了什么,你都在第三个表达式之后放了一个右括号,而不是分号。

for (listnode *p = list_head; *p; p = p->next) // correct

推荐阅读