switch内部定义变量须注意的问题
2013-08-21 23:54
260 查看
对于switch结构,只能在它的default标号后面定义变量。制定这个规则是为了出现代码跳过变量的定义和初始化的情况。
让我们来回顾变量的作用域,变量从它的定义点开始有效,直到它所在所在块结束为止。现在考虑如果在两个case标号之间定义变量会出现什么情况。该变量会在该块结束之前一直存在。对于定义该变量的标号后面的其他case标号,它们所关联的代码都可以使用这个变量。如果switch从那些后续的case标号开始执行,那么这个变量可能还未定义就要使用了。
在这种情况下,如果需要为某个特殊的case 定义变量,则可以引入语句块,在这块语句中定义变量,从而保证这个变量在使用前被定义和初始化。
switch(bool_alpha)
{
case ture:
{
string file_name=get_file_name();
//........
}
break;
case false:
break;
default:
break;
}
让我们来回顾变量的作用域,变量从它的定义点开始有效,直到它所在所在块结束为止。现在考虑如果在两个case标号之间定义变量会出现什么情况。该变量会在该块结束之前一直存在。对于定义该变量的标号后面的其他case标号,它们所关联的代码都可以使用这个变量。如果switch从那些后续的case标号开始执行,那么这个变量可能还未定义就要使用了。
在这种情况下,如果需要为某个特殊的case 定义变量,则可以引入语句块,在这块语句中定义变量,从而保证这个变量在使用前被定义和初始化。
switch(bool_alpha)
{
case ture:
{
string file_name=get_file_name();
//........
}
break;
case false:
break;
default:
break;
}
相关文章推荐
- 请教switch内部的变量定义问题?
- 定义一个结构体变量(包括年、月、日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天。注意闰年问题。(switch语句)
- switch 语句内部变量的定义问题
- 转:switch内部的变量定义问题(goto类似)
- 【MYSQL】定义整形变量时需要注意范围的问题
- 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。
- 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题
- switch-case 中的分支中变量定义 编译不通过问题
- c++ switch内部的变量定义
- 定义一个结构体变量(包括年、月、日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天。注意闰年问题。(数组)
- C++ primer 五 switch内部的变量定义
- 定义变量的注意问题
- (c++)定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
- switch内部的变量定义
- 头文件中定义const全局变量应注意的问题
- C++:在switch的case中定义变量的问题
- 头文件中定义const全局变量应注意的问题
- switch内部的变量定义
- C语言switch case语句中定义变量问题
- 头文件中定义 const 全局变量应注意的问题