• for语句中声明变量


     

    在C语言中,局部变量应该在函数的可执行语句之前定义,但在C++中变量可在任何语句位置定义,只要允许程序语句的地方,都允许定义变量。

    在C99标准中C同C++一样允许在for循环语句中定义变量。并且这个变量作用域被限定在for循环中,在for循环外就成为了未定义变量(C++也是)。

    ※GCC下编译时需要加上std选项,例如 gcc example.c -std=c99

    看一段程序,在for语句中声明了变量i 和 k,(允许在for循环语句中定义变量:指的是程序中i和k这2种形式

    这一段程序只有在 Microsoft Visual C++ 6.0 才能编译通过,

    在Microsoft Visual Studio 2008 和 GCC 下都是报错的,原因是printf 2行中i和k是未定义的。

    //define_variable_in_for.c(pp)
    
    #include <stdio.h>
    
    
    int main(void)
    {
        int n = 1;
    
        for (int i = 0; i < 10; i++)
        {
            int k;
            n = n * i;
            k = i;
        }//i 和 k 的作用域到此结束(ISO Standard)
        
        printf("i = %d
    ", i);//Only Microsoft Visual C++ 6.0 
        printf("k = %d
    ", k);//Only Microsoft Visual C++ 6.0 

        return 0; 
    }
    //n 的作用域到此结束
    
    

    Microsoft Visual C++ 6.0 下能编译通过的原因是其扩大了for循环中定义的变量的作用域,作用域扩大至下一个"}",

    不知道这是一个BUG还是有意为之。

    ---------------------------------------------------------------------------------------------------
    参考资料:
    <<C++面向对象程序设计(第二版)>>

  • 相关阅读:
    sublime使用
    eclipse导入工程中文乱码
    npm 代理
    栈和堆
    Linux常用命令大全
    Google云开启SSH登录方法
    景安快运挂在磁盘-支持宝塔
    discuz 批量删除回复并且保留主题的方法,亲测3.4版本通过
    博客园去掉页面的广告的方法
    WordPress忘记后台登录地址时怎么办?万能登录地址
  • 原文地址:https://www.cnblogs.com/LubinLew/p/define_variable_in_for.html
Copyright © 2020-2023  润新知