c语言switch语句 谢谢·!~!~

来源:百度知道 编辑:UC知道 时间:2024/06/11 14:32:07
请问,何为,常量表达式 !谢谢!~!`
请问选哪个?? case 常量表达式!
float x; int a,b;
a:
switch(x)
{
case 1.0:printf("*\n");
case 2.0:printf("*\n");
}
b:
switch(x)
{
case 1,2:printf("*\n");
case 3:printf("*\n");
}

c:
switch(a+b)
{
case 1:printf("*\n");
case 1+2:printf("*\n");
}

d:
switch(a+b)
{
case 1:printf("*\n");
case 2:printf("*\n");
}
请详细点,,谢谢!~1

表达式就有由一串“数字”和“符号”组成的式子,例如1+2是表达式,12*8-1*99也是表达式。C++
的“符号”除了普通的算术运算+-*/之外还有其他的。
常量表达式就是表达式里面只有常量的式子,比如1+2是常量表达式,如果定义a为常量1,那么a+2也是常量表达式。
如果定义变量a,那么a+2就不是常量表达式。

//////////////////////////////////////////////
问题补充:请问选哪个?? case 常量表达式!
//////////////////////////////////////////////
选择C,D,这两个都是正确的

a:
switch(x)
{
case 1.0:printf("*\n");
case 2.0:printf("*\n");
}
//a错误,case后的表达式必须为整型或者字符型

b:
switch(x)
{
case 1,2:printf("*\n");
case 3:printf("*\n");
}
//b错误,case后的表达式只能有一个,所以case 1,2:是错的

c:
switch(a+b)
{
case 1:printf("*\n");
case 1+2:printf("*\n");
}
//对的,常量(1)是有效的,常量表达式(1+2)是有效的

d:
switch(a+b)
{
case 1:printf("*\n");
case 2:printf("*\n");
}
//对的,常量(1),