如果我在C的if条件中声明变量,那么该变量也可以用于else分支吗?例如:
if((int x = 0)){
foo();
} else{
x++;
bar(x);
}
找不到答案,至少找不到我的措辞方式。请帮助。
您无法在C中的if条件中声明变量...
例如,如果在if范围内声明,则:
if(something){
int x = 0;
} else{
x++; // will cause a compilation error
bar(x);
}
未定义'else'中的x,因为在C中,局部变量只能由声明它们的代码块中包含的语句使用。
实验结果:无法在if
条件下声明变量。不会编译。
您不能这样声明变量
if((int a = 0))
编译器不允许运行代码,并且出现错误
并且如果您尝试此操作
if(something_that_is_false){
int a = 12;
}
else{
do_something;
}
再次出错,因为它们处于同一级别,并且无法访问其局部变量。
警告:您可以使用此代码,并且可以正常运行
int a;
if(a=0){
printf("True");
}
else{
printf("False");
}
并且您会在屏幕上看到'False',因为这就像书写
if(0) // and its false!
最后一个
int a;
if(a=0){
printf("True");
}
else{
printf("False");
}
您会在屏幕上看到“ True”,因为这就像书写
if(5)//除零以外的任何数字为真!