c - 如果我在循环内声明变量有关系吗?

标签 c while-loop scope declaration

我的问题是,如果我在循环外部声明一个变量并每次在循环内部重新初始化,或者在循环内部声明并初始化,这有什么关系吗?那么基本上这两种语法(性能、标准等)之间有什么区别吗?

方法1

int a,count=0;
while(count<10)
   a=0;

方法2

int count=0;
while(count<10)
   int a=0;

请假设这只是一个更大程序的一部分,并且循环内的主体要求变量a每次都具有0值。那么,这两种方法的执行时间会有什么差异吗?

最佳答案

是的,这确实很重要。第二种情况

int count=0;
while(count<10)
   int a=0;

a 无法在 while 循环之外引用。它具有 block 作用域;程序文本中可以引用变量的部分。
另一件事是Jonathan Leffler在他的answer中指出这两个循环都是无限循环。其次,如果没有 {}(C 语言),最重要的第二个代码段将无法编译,因为变量定义/声明不是语句,不能作为循环体出现。

 int count  =0;
 while(count++ < 10)
 {  
      int a=0;  
 } 

关于c - 如果我在循环内声明变量有关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20720264/

相关文章:

c++ - 实现全局范围数据的最佳方式

c - 从函数返回结构。 C

带 print 的 R Sys.sleep 在 while 循环中不起作用

javascript - 插件未按预期工作,可能存在 Javascript/jQuery 变量范围问题

c++ - 全局变量和范围 - C++

javascript - 计数高于平均水平

c - 微 Controller 编程中ISR函数中 volatile 关键字的使用

c - 如何使用 8051 微 Controller 连接键盘和 LCD

c - 最小值字符串

php - mysql_fetch_assoc() 仅适用于 WHILE 循环中的一次迭代