|
1
21
我认为你们都混淆了C++和C语言。 用C++表示,在表达式中声明的变量的范围是在它后面的块的外部。这一点在一段时间前已经改变了,因此for表达式中声明的变量的作用域是它后面的块的内部。C遵循后面的方法。但两者都与此无关。
因此,在C++中,这是非法的。现在它是合法的。
同样的事情在C#也是合法的。有三个作用域,外部作用域中没有定义“i”,还有两个子作用域,每个子作用域声明自己的“i”。
这里,有两个范围。一个外在的表示“我”,一个内在的表示“我”。这在C++中是合法的,外部的“i”是隐藏的,但是它在C语言中是非法的,不管内部范围是for循环还是while循环,或者是什么。 试试这个:
|
|
|
2
3
for循环后不存在incrementor。
|
|
|
3
2
赞成。语法上:新范围在由卷曲字符串定义的块内。功能上:在某些情况下,您可能需要检查循环变量的最终值(例如,如果中断)。 |
|
|
4
2
只是一些背景信息:序列不在其中。只不过是作用域的概念-方法作用域和
因此,您发布的内容与此相同:
我发现这样想会让答案更符合我的思维模式。。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |