zoukankan      html  css  js  c++  java
  • 关于for循环体里变量的声明的使用在c++、c#里的区别

    请注意,本人用到是VS2010测试:

    一:for循环外声明变量,for循环内使用,for循环外再使用的情况

     (1)c++里面的情况

     int i = 0;
    for (i; i <= 5; i++)
    {
    printf("循环中的i=%d\n", i);
    }
    printf("循环外的i=%d\n", i);//循环外结果i=6
    system("pause");
    return 0;

    这里可以看到在循环体外输出的时候i的值变了,也就说for循环体内改变了i的值。具体for循环体内的i和循环外的i是不是一个内存地址上的i,是在堆上还是栈上,我也不清楚,还请各位大神解答。

    (2)c#里面的情况

    #region 像这样在for循环外声明,for循环里面使用的话c++里面是不报错的,但是c#报错

    int i = 0;
    for (i; i <= 5; i++)
    {
    Console.Write("循环中的i={0}\n", i);
    }
    Console.Write("循环外的i={0}\n", i); ;//循环外结果i=6

    #endregion

    提示for后面括号里面的i错误,应该是因为i未声明赋值的原因。

    二:for循环内声明变量,循环外使用的情况(此处c++和c#都报错)

    (1)c++里面的情况

    //像这样在for循环内声明,for循环外使用的话c++和c#里面都报错的,作用域问题
    for(int i=0;i<=5;i++)
    {
    printf("循环中的i=%d\n",i);
    }
    printf("循环外的i=%d\n",i);//循环外结果i=6
    system("pause");
    return 0;

    错误提示for循环体外的i未声明,可能是作用域的问题。

    (2)c#里面的情况

     #region 像这样在for循环内声明,for循环外使用的话c++和c#里面都报错的,作用域问题
    for (int i=0; i <= 5; i++)
    {
    Console.Write("循环中的i={0}\n", i);
    }
    Console.Write("循环外的i={0}\n", i);//循环外结果i=6
    Console.Read();
    #endregion

    错误提示for循环外的i不存在。可能是作用域的问题。

  • 相关阅读:
    第三篇——第二部分——第三文 配置SQL Server镜像——域环境
    DOS命令学习(从入门到精通)
    Cocos2d-x3.0 LoadingBar
    微信对接HIS——微信可查检验结果
    微信iOS SDK文档总结
    Azure编程笔记(4):配置Cloud Service的证书
    android的ViewPager和Animation的一些使用(一)
    小虾米的鳄鱼梦
    Hadoop源码分析21:namenode概要
    Hadoop源码分析20:datanode概要
  • 原文地址:https://www.cnblogs.com/jinianjun/p/2417237.html
Copyright © 2011-2022 走看看