c/c++语言开发共享在for循环中声明和初始化变量

我可以写简单吗?

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总是作为在c和c ++中定义for循环的首选方法。

    至于“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

      (0)
      上一篇 2021年1月13日
      下一篇 2021年1月13日

      精彩推荐