小编Jad*_*ade的帖子

循环外变量的范围

我正在尝试使用几年前编写的程序,并在之前版本的MS VC++中编译(我使用的是VC++ 2008).有很多(数百个)实例类似于以下内容:

int main () {
  int number = 0;
  int number2 = 0;

  for (int i = 0; i<10; i++) {
   //something using i
  }

  for (i=0; i<10; i++) {
   //something using i
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不确定它最初编译的是哪个版本,但它确实有效.我的问题是:它是如何工作的?我的理解是i变量应该只定义用于第一个循环.当我尝试编译它现在我得到错误"'我':未声明的标识符"为开始第二个循环的行,这是有道理的.在以前版本的VC++中,这只是被忽略了吗?谢谢!

visual-c++

2
推荐指数
1
解决办法
830
查看次数

将int转换为float

我试图将一个int添加到浮点数.我的代码是:

int main() {
   char paus[2];
   int millit = 5085840;
   float dmillit = .000005;
   float dbuffer;

   printf("(float)milit + dmillit: %f\n",(float)millit + dmillit);
   dbuffer = (float)millit + dmillit;
   printf("dbuffer: %f\n",dbuffer);

   fgets(paus,2,stdin);
   return 0;
 }
Run Code Online (Sandbox Code Playgroud)

输出如下:

(float)millit + dmillit:5085840.000005
dbuffer:5085840.000000

为什么会有区别?我也注意到如果我改变dmillit = .5,那么两个输出都是相同的(5085840.5),这就是我所期望的.为什么是这样?谢谢!

c visual-c++

0
推荐指数
1
解决办法
412
查看次数

标签 统计

visual-c++ ×2

c ×1