量在for内定义还是在外定义比较好?各有什么优点?

zzxap 2011-04-26 04:34:41
for(int i=0;i<80000;i++)
{

}


int i=0;
for(i=0;i<80000;i++)
{

}

那个更好?变量在for内定义还是在外定义比较好?各有什么优点?
...全文
183 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangwq2017 2011-04-26
  • 打赏
  • 举报
回复
有关i在内还是在外,是个作用域的问题,要根据自己的需要及编译器的情况决定。
要替你补充的一点:i++最好换为++i,这个真的会好一点,更专业

i++:i先创建一个自身的一个副本,然后i自增1,最后返回副本的值
++i:将i自增1并返回i

另外还有i+=1和i=i+1,曾经的面试题。。。
ianoshen 2011-04-26
  • 打赏
  • 举报
回复
需要看i的作用范围吧,有时需要全局用。不过刚试了dev里面第一种编译不过
svtanto 2011-04-26
  • 打赏
  • 举报
回复
for(int i=0;i<80000;i++)
{}
不是标准写法,有些编译器不能通过。
但是,把变量的作用域缩小是良好的编程风格
加油馒头 2011-04-26
  • 打赏
  • 举报
回复
可以忽略不计。。。 都市初始化一次,不会产生过多变量
zhangbo_1001 2011-04-26
  • 打赏
  • 举报
回复
for(int i = 0; i<100; i++){}

error: ‘for’ loop initial declarations are only allowed in C99 mode

gcc:
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
sxqinge 2011-04-26
  • 打赏
  • 举报
回复
一直选择第一种。
偶尔也会用第二种,但基本都是这种形式下使用:
int Index = 12;
for(; Index<100; Index++){}
xspace_time 2011-04-26
  • 打赏
  • 举报
回复
小程序好写 知道要用哪些量,前面早就定义了
大点的程序 一边写一边定义,往往都跑到for里面去了

实际上说到效率,好象for要用三段 指令,而while只要两段指令,所以还是把看看汇编代码和执行时间怎么说也比较直接有效
觅食的猫猫 2011-04-26
  • 打赏
  • 举报
回复
没用过第一种,哈哈
Yimw_1978 2011-04-26
  • 打赏
  • 举报
回复
第一种有时候无法编译通过。
pathuang68 2011-04-26
  • 打赏
  • 举报
回复
个人觉得差别不大,纯属个人偏好。

我个人比较喜欢放在for里面。
koolxiaoyuer 2011-04-26
  • 打赏
  • 举报
回复
如果外面还想用就放循环外,如果外面用不到就放里面呗。这样代码看起来清晰简洁
赵4老师 2011-04-26
  • 打赏
  • 举报
回复
据说VC6里面编译
for (int i... {
}
for (int i... {
}
通不过。
qust_sunqiyuan 2011-04-26
  • 打赏
  • 举报
回复
作用域问题
第一种下次你在使用还得声明
第二种就不用了 直接赋值就可以了
ee_smile 2011-04-26
  • 打赏
  • 举报
回复
在循环里面定义的变量跳出循环就不存在了,看自己的需要而定!
masmaster 2011-04-26
  • 打赏
  • 举报
回复
for(int i=0;i<80000;i++) //C99不识别这样的在循环里初始化的方式。
dooX8086 2011-04-26
  • 打赏
  • 举报
回复
除了作用域.还有兼容性与优化问题
int i;
for(i=0...) //兼容性好

for (int i=0...) //传说中会把 i 优化成 register
pengzhixi 2011-04-26
  • 打赏
  • 举报
回复
一个作用域的问题,如果你希望i出了for循环还可以用那么就放外面,如果不希望那就不放for循环里面。
luciferisnotsatan 2011-04-26
  • 打赏
  • 举报
回复
for(int i=0;i<80000;i++)
{

}

i的范围就再for循环里,出了循环,i就销毁了。
不过,就的编译器,如VC6.0,出了for,i还存在,这样和外边定义一样

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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