我可以写简单吗?
for (int i = 0; ...
代替
int i; for (i = 0; ...
在C或C ++?
(并且变量i
只能在循环中访问吗?)
它在C ++中有效
在C的原始版本中它不合法。
但是在C99中作为C的一部分被采用(当一些C ++特性被反向移植到C时)
使用gcc
gcc -std=c99 .c
该变量在for语句和循环语句中有效。 如果这是一个块语句,则它对整个块有效。
for(int loop = 0; loop < 10; ++loop) { // loop valid in here aswell } // loop NOT valid here.
是的,它在C ++和C99中是合法的。
在C99或C ++中执行此操作是完全合法的:
for( int i=0; i
它的等价物是:
{ int i=0 while( i
实际上for(int i=0;i
至于“i”只能在循环中访问,您必须关心您使用的变量名称。 如果将“i”声明为循环外的变量并将其用于其他内容,则在将相同的变量用于循环计数器时会导致问题。
例如:
int i = 10; i = 10 + PI;
当你点击for循环并声明i = 0时,它会自动更改
是的,是的。 但是对于C,显然你的编译器需要处于C99模式。
我可以写简单吗?
是。
(并且变量我只能在循环中访问吗?)
取决于编译器及其版本。 AFAIK,在现代编译器中,我只能在循环内部访问。 一些较旧的编译器也允许我在循环之外访问。 有些编译器允许在循环外部访问i并警告您非标准行为。
我认为 (但我不确定),“我在循环之外”是在VC98的某个地方使用的(Visual Studio 6,其中AFAIK也有一个全局定义的“i”变量,可能导致极端有趣的行为)。 我认为 (微软)编译器大约在2000年左右开始编写。2003年开始打印“非标准扩展使用”在循环外使用i,最终这个function完全消失了。 它在visual studio 2008中不存在。
这可能是根据标准发生的,但我现在无法给出链接或引用。
如果你在循环中使用变量,那么每次在循环中初始化它时它都会改变
int i = 0; for(int e = 0; e < 10; e++) { i = e; }
现在我的价值每次都会改变
以上就是c/c++开发分享在for循环中声明和初始化变量相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/549215.html