SLN*_*SLN 3 c++ for-loop comma-operator
...
for (int i = 1; i != 9; ++i)
std::cout << i << std::endl;
...
Run Code Online (Sandbox Code Playgroud)
for 循环语句的头部由三部分组成:初始化语句、条件和表达式。在上面的例子中,init 语句是int i = 1;
似乎将带有逗号运算符的语句作为 init 语句包含在内是非法的。
...
for ( (int i , cin >> i) ; i != 9; ) // 2 Erros
std::cout << i << std::endl;
...
Run Code Online (Sandbox Code Playgroud)
对于上面的示例,我收到了 2 个错误警告
( int i , cin >> i) ; i != 9;) 错误:'int' 之前的预期主表达式
(int i , cin >> i) ; i != 9;) 错误:i' 未在此范围内声明
有人可以向我解释这个错误的原因是什么吗?
简单:第一条语句必须是声明语句。
你同样不能写:
int main()
{
(int i , cin >> i);
}
Run Code Online (Sandbox Code Playgroud)
那里没有“逗号运算符”,只有语法错误,因为这不是 C++ 的工作方式。