for()语句中小括号中定义的变量,是不是作用域会大于花括号中定义的变量?

时间:2020-12-27 22:39:11
for()语句中小括号中定义的变量,是不是作用域会大于花括号中定义的变量?
我以前一直认为,二者是一样的,看来不一样。

我想确认一下我的理解对不对?谢谢。

1.在小括号中定义的变量,是在整个for语句中都是可见的。即不仅在小括号可见,同样在花括号中也可见。
2.在花括号定义的变量,只在花括号之间有效。
3.在花括号中定义变量,是没有意义的,是不规范的,应该在小括号中定义变量。

7 个解决方案

#1


1.2.和我的理解相同
3.我的理解是:花括号中定义变量符合语法,也有具体含义,但效率太低

#2


1.在小括号中定义的变量,是在整个for语句中都是可见的。即不仅在小括号可见,同样在花括号中也可见。 
是的
2.在花括号定义的变量,只在花括号之间有效。 
是的
3.在花括号中定义变量,是没有意义的,是不规范的,应该在小括号中定义变量。
不是的

另外与那个年代的标准也有关系!

#3


引用 1 楼 cphj 的回复:
1.2.和我的理解相同
3.我的理解是:花括号中定义变量符合语法,也有具体含义,但效率太低

为何效率低呢?请明示一下。

#4


创建……消亡……创建……消亡……创建……消亡……创建……消亡……创建……消亡……

创建……消亡
相比

效率啊……

#5


在for中定义的如果是int之类的简单类型,基本上编译出来的代码都差不多,编译器会优化的.

#6


主要是看你的程序逻辑。for循环几次,相当于其后就有几个花括号对,每次花括号对自己的数据应该在花括号中定义,大家共用的就在外面定义了。

#7


这个要看编译器吧?

至少VC6.0和VC2005编译同样的代码,for的()里面定义的变量就会出现作用域问题。搞得我现在写代码都是老老实实的在函数最前面定义循环变量……

#1


1.2.和我的理解相同
3.我的理解是:花括号中定义变量符合语法,也有具体含义,但效率太低

#2


1.在小括号中定义的变量,是在整个for语句中都是可见的。即不仅在小括号可见,同样在花括号中也可见。 
是的
2.在花括号定义的变量,只在花括号之间有效。 
是的
3.在花括号中定义变量,是没有意义的,是不规范的,应该在小括号中定义变量。
不是的

另外与那个年代的标准也有关系!

#3


引用 1 楼 cphj 的回复:
1.2.和我的理解相同
3.我的理解是:花括号中定义变量符合语法,也有具体含义,但效率太低

为何效率低呢?请明示一下。

#4


创建……消亡……创建……消亡……创建……消亡……创建……消亡……创建……消亡……

创建……消亡
相比

效率啊……

#5


在for中定义的如果是int之类的简单类型,基本上编译出来的代码都差不多,编译器会优化的.

#6


主要是看你的程序逻辑。for循环几次,相当于其后就有几个花括号对,每次花括号对自己的数据应该在花括号中定义,大家共用的就在外面定义了。

#7


这个要看编译器吧?

至少VC6.0和VC2005编译同样的代码,for的()里面定义的变量就会出现作用域问题。搞得我现在写代码都是老老实实的在函数最前面定义循环变量……