C++中定义问题

pk373927011 2010-12-04 09:17:32
在C++中在FOR循环外定义和在内定义的区别?
...全文
148 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
igzhenjie 2010-12-05
  • 打赏
  • 举报
回复
我明白楼主的意思,
我是一个变量的有效域的问题,
1.在FOR内的定义,在FOR中(就是for(..;..;..){}两个大括号中)有效,在FOR外,就不承认这定义(这是通俗的说法,真正意义上是:出了这个FOR就释放了这个定义的变量的内存空间了)
2.在FOR外的定义,这时在定义所在的整个域中(定义所在的{...})都是被承认的(用LZ的理解就是在FOR中被承认,在FOR外,还是被承认,就是说在FOR中这个定义的变量,发生了变化之类的,在FOR外就是它变化了的值)(就是说在整个{...}中,它的整个内存空间都没有被释放)。
Binzo 2010-12-05
  • 打赏
  • 举报
回复
main(){
int i;
for(...){
int j;
}
}
i对main和for的{}有效,j只对for的{}有效。
初学编程,要注意少用像i的大变量。
for也不好,用while 吧。
xspace_time 2010-12-05
  • 打赏
  • 举报
回复
在for内,是这样吗for(int static i=0;i=i;i++){}
在for外,是这样吗int stctic i=0;for(i=0;i=i;i++){}
都是一样的
effortcpp 2010-12-05
  • 打赏
  • 举报
回复
百度一下作用域,楼主就明白了
goodmba 2010-12-05
  • 打赏
  • 举报
回复
在效果上可以这样理解,在FOR循环外定义,在整个FOR循环中使用的都是这个变量最新的值, 这个变量只定义了一次。在FOR循环内定义,每循环一次就定义一次这个变量。
实际上,由于一些底层的原因,在FOR循环内定义同样只为这个变量分配一次内存(定义一次),只是这个循环能保证每一次循环的时候都初始化这个变量。
一根烂笔头 2010-12-05
  • 打赏
  • 举报
回复
c++与Java都支持for(int i=0;;)这种格式,C语言不支持,而只能是int i;for(;;)。它们只是作用域的差别。int i;for(;;);for(;;);那么i既可以用在第一个for循环中也可以用在第二个for循环中。如果是
for(int i=0;;);for(;;);那么i就不能用在第二个for循环中,也就是说:for(int i=0;;);for(int i=0;;);这样用也是对的,因为这里的i都是只作用在它所在的for循环中。
如果不明白,你可以完全不用计较这些东西,好像用两种方法做同一件事一样。因人的程序风格而选择自己喜欢的格式即可!
xi2002cn2003 2010-12-04
  • 打赏
  • 举报
回复
int a,b;
for()
{
int i,j
for
{
i=a;
j=b;
}
}
里边的变量名不重名即可
cyf31 2010-12-04
  • 打赏
  • 举报
回复
主要是作用范围的不同
就想叫yoko 2010-12-04
  • 打赏
  • 举报
回复
是指那个循环变量i吗
这个好像跟编译器或者C/C++也有不同
有的时候是在for里面定义的i他的作用域只在for里面起作用
这个没关系的,你写程序的时候如果出现重定义编译器报错你再解决就好了
例如第二个for里面就不写i声明直接用或者用另一个循环变量j也行
sea_spray 2010-12-04
  • 打赏
  • 举报
回复
内定义的变量只能在循环中使用,外定义的变量也能在循环中使用,但是外部定义的变量在循环内部使用时就要求不能在循环内部定义相同的变量名。只要是能分清你定义的变量使用的范围就OK了。
dingshaofengbinbin 2010-12-04
  • 打赏
  • 举报
回复
说明白点,说不明白,就贴点代码!!
na2650945 2010-12-04
  • 打赏
  • 举报
回复
...
查看作用域的解释。
Dstnoe 2010-12-04
  • 打赏
  • 举报
回复
for(int i=0;i<10;i++)
{
// code...
}
还是
int i=0;
for(;i<10;i++)
{
//code ...
}

这是变量问题。
在内定义 是局部变量,会覆盖在外定义的变量。
luciferisnotsatan 2010-12-04
  • 打赏
  • 举报
回复
啥意思?

for(...)
{
int b; //这个b只在for循环里有效。你是要问这个?
}
yiruirui0507 2010-12-04
  • 打赏
  • 举报
回复
外定义和在内定义?楼主的意思是双重循环?那个放外面那个放里面吗?还是什么。。。
dubiousway 2010-12-04
  • 打赏
  • 举报
回复
外定义和在内定义? 什么意思

65,183

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧