C++ C+;中不带大括号的for循环的范围是什么+;

C++ C+;中不带大括号的for循环的范围是什么+;,c++,scope,curly-braces,C++,Scope,Curly Braces,我知道,{…}引入了一个新的作用域,这就是为什么以下方法不起作用: for(int i = 0; i < 10; i++) { // Do something... } cout << i << endl; // Error: i is not defined in this scope for(int i=0;i

我知道,
{…}
引入了一个新的作用域,这就是为什么以下方法不起作用:

for(int i = 0; i < 10; i++) {
    // Do something...
}

cout << i << endl;  // Error: i is not defined in this scope
for(int i=0;i<10;i++){
//做点什么。。。
}

couti
的可见性范围是
for()
循环体

for (int i = 0; i < 10; i++) continue;
for(inti=0;i<10;i++)continue;
只相当于

for (int i = 0; i < 10; i++) { continue; }
for(inti=0;i<10;i++){continue;}
如果省略大括号,则正文就是
for()
循环头后面的语句。

任何不带大括号的控制结构(
If
for
while
等)仅适用于下一个语句。第二个示例相当于以下内容:

for (int i = 0; i < 10; i++) {
    continue;
}
cout << i << endl;
for(int i=0;i<10;i++){
持续
}

这与{}也有自己的作用域(不一定在控制结构中)这一事实有关系吗?@AbrahamMurcianoBenzadon-no。请注意,
I
的定义不在花括号内。这个规则本质上就是这个答案所说的:在控制结构中定义的变量的范围在受控语句的末尾结束。受控语句可以是简单语句,也可以是用大括号括起来的复合语句。
for (int i = 0; i < 10; i++) {
    continue;
}
cout << i << endl;