关于for循环体里变量的声明的使用在c++、c#里的区别

C++与C#中for循环体内与体外变量声明的区别
本文详细对比了在C++和C#中for循环体内外变量声明的使用差异,包括变量作用域、生命周期及输出结果的不同。

请注意,本人用到是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不存在。可能是作用域的问题。

posted on 2012-03-25 23:31  初学者心态 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jinianjun/archive/2012/03/25/2417237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值