if语句块中的变量初始化

时间:2011-01-23 20:19:21

标签: c++

每次我在 if-statement 的块及其 else 的块中初始化变量,并在之后使用它时,编译器会发出错误:变量未声明。例如:

if (/*Some expression*/)
  int a=5;
else
  int& a=c;

//...

a++; // Variable not declared

我的编译器会说未声明 a 。除 if-statement 之外的任何声明的主要问题是,在一种情况下,变量 a 必须是引用,必须在初始化时设置它。另外,我真的不想创建一个新的变量,除非它是必要的,它不是它可以作为参考。

还有别的我做错了吗?或者传递错误的方法?还是某种类型的变量原型?

1 个答案:

答案 0 :(得分:8)

C ++中的变量具有特定类型; a有时不能int,其他时间不能int &。所以你的代码没有任何意义。正如您已经发现的那样,变量的“范围”仅限于它们声明的块。

在不知道你想要解决的问题的情况下,我真的不能再那么具体了。