for(int i=0;;)中i的作用域
来源:互联网 发布:cmd中怎么运行java文件 编辑:程序博客网 时间:2024/05/17 05:15
//for 语句:
for(int i=0;i<100;i++)
{
int a;
... ...
}
上面的a也是一个局部变量。处在for语句带的{}之内。
for 语句涉及局部作用域时,有一点需要特别注意:上面代码中,变量 i 的作用域是什么?
根据最新的 ANSI C++ 规定,在for的初始语句中声明的变量,其作用范围是从它定义的位置开始,一直到for所带语句的作用域结束。而原来老的标准是出了for语句仍然有效,直到for语句外层的局部作用域结束。请看对比:
假设有一for语句,它的外层是一个函数。新老标准规定的不同作用域对比如下:
如果按照旧标准,下面的代码将有错,但对新标准,则是正确的,请大家考虑为什么:
void func()
{
for(int i=0;i<9;i++)
{
cout << i << endl;
}
for(int i=9;i>0;i--) //<-- 在这一行,旧标准的编译器将报错,为什么?
{
cout << i << endl;
}
}
Borland C++ Builder 对新旧标准都可支持,只需通过工程中的编译设置来设置采用何种标准。默认总是采用新标准。记住:如果你在代码中偶尔有需要旧标准要求的效果,你只需把代码码写成这样:
int i;
for(i=0;i<9;i++)
{
...
}
这时候,i的作用域就将从其定义行开始,一直越过整个for语句。
0 0
- for(int i=0;;)中i的作用域
- for(int i=0;;)中i的作用域
- for(int i = 0; i < 10; i++) 与 for(int i = 0; i < 10; ++i) 的区别
- for(int i = 0;i < 10;i++)和int i;for(i = 0;i < 10;i++)
- for(int i=0;i<list.size();i++) 与 for(int i=0,len=list.size();i<len;i++)的区别
- for (int i=0;i<GetMenuItemCount(hMenu1);i++)
- for (int i = 0; gc_handDataOutput->QueryNumberOfHands(); ++i)
- java中 for (int i : arr) 这个语句的意思
- for(Object o :list)与for(int i = 0 ,int size = list.size();i<size;i++)ConcurrentModificationException
- for (int i = 0, size = c.size(); i < size; i++)
- (二)关于for(int i = 0;i<a.length();i++){...}
- 用c:forEach实现for(int i=0 ; i < 10 ; i++)
- for(int i=0;i<stack.size();i++)出栈不完全问题
- Integer.highestOneBit(int i)的作用
- for(let i = 0; i < 10; i++)和for(var i = 0; i < 10; i++)的思考
- 两个for的int i重复定义
- foreach和for(i=0;i<collection.size();i++)的区别
- (int a[][]) //输出数组方法 { for(int i=0;i<a.length;i++) { for(int j=0;j<a[0].length;j++)
- 35岁之前必须完成的12级跳
- SoundTouch音频处理库源码分析及算法提取(9)
- Java基础--集合2:集合的迭代
- AFNetworking 返回数据为空或二进制等数据
- 我的博客
- for(int i=0;;)中i的作用域
- Android聊天室客户端的实现
- Android-高德地图
- wifidog common.h
- Android 华为手机 导航栏隐藏
- jquery mobile 新手问题
- 软件测试总结
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- 要完成的学习或考试任务