c关于switch问题,这是什么原理?

a=0x0f;
if (a!=0x0f)
{
a=0x0f;
switch(a)
{
case(0x07):b=0;break;
case(0x0b):b=1;break;
//为何switch上一句a都重新赋值0x0f了,这switch的表达式还会出现其他值,难道不是值肯定为0x0f吗?
}
}

当case语句大于等于4的时候,且每两个case之间产生的间隔之和不超过6时,就按线性结构查找。即,如下图的汇编里面的jmp dword ptr [edx*4+11B1428h]该指令里面的11B1428h地址里面,其存放着各个case语句的首地址。由于内存中下标是从0开始的,因此,通过对其进行减一操作,在判断其是否大于11B1428h地址的数组长度,如果大于直接跳出,否则通过计算直接定位到该数组上的地址进行跳转。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-02
case1:
//此块代码不能再声明变量,如果你声明变量就会报错,除非用括号括起来,这是编译器的问题,也可以说是C语言的规定。写代码的时候注意就成了。就像C语言再声明的时候不能赋值一样,记住就好了。
break;
希望对你有所帮助。追问

不对哦,我想问的是a重新赋值为0x0f了,为什么下面switch还能判断出其他的值?不应该也是0x0f吗?

本回答被网友采纳
C语言中的SWITCH是什么意思?
C语言中的"SWITCH"是一个关键字,其主要作用是实现条件判断和选择控制。它经常与"CASE"一起使用,用于编写一系列的条件分支,根据给定的表达式的值,执行相应的代码块。简单来说,"SWITCH"就像现实生活中的电闸或道岔,可以让你的程序根据不同的输入或条件,灵活地进行路径切换。在编程中,当你需要根据...

求问这道关于Switch语句的c语言的题
这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了...

C语言中的switch和default是什么意思
在C语言中,switch和default是两个不可或缺的关键结构,它们共同构成了条件控制的强有力工具。switch语句的核心作用是根据变量的特定值来执行相应的代码块,其工作原理是:当变量的值与某个case中的值匹配时,执行相应的case后,会立即跳出switch语句。如果没有匹配的case,default部分的代码就会被执行,然...

C语言中的Switch-c
在C语言中,Switch-c,或称为Switch语句,是一种特殊的控制流程结构,类似于if-else语句的变体。它的核心功能是根据给定的变量表达式的值,执行相应的代码块。当表达式的值匹配到某个case的常量时,就会执行该case下的语句,并可能通过break语句跳出Switch结构,防止后续case的执行。如果所有case都不匹配,...

关于C语言switch语句的break问题
c语言的switch语句是穿透的= = 也就是说当程序判断某个case的条件为真后,它将在执行该case所带的的语句块之后不再对后面的case的条件进行判断而直接执行。所以将第一个break去掉并输入0之后程序判断第一个case的条件为真,输出e,再继续执行第二个case后的语句,又输出e,之后遇到break语句退出switch...

C语言switch语句,求大神解释一下,谢谢
switch(val) { case v1: ...\/\/如果这里有break,则跳出switch,否则,继续执行下一个case中的代码。case v2: ...break;} 使用switch语句时,首先会计算switch后面的表达式的值。然后,程序会检查这个值是否与case后面的表达式相匹配。一旦找到匹配的case,程序就会执行该case后面的代码。如果case后面...

C语言中switch语句的用法
在这个例子中,如果number等于2,程序将输出"Number is 2"并立即跳出switch结构。如果没有break语句,程序将继续执行下一个case语句,可能导致意外的行为。在实际编程中,正确使用break语句可以避免逻辑错误,确保程序按预期执行。此外,合理地使用default语句可以处理未预见的情况,提高程序的健壮性。总之,...

c语言中 switch case
在C语言中,switch语句是一种重要的控制流程工具,它根据给定的常量值来决定执行哪个代码块。当程序遇到switch结构时,会检查括号内的表达式的值,并将其与每个case标签中的值进行比较。例如:当程序遇到 switch(需要判断的常量值)时,如果这个值匹配到某个case标签,比如 case 1:程序就会执行紧跟其后的...

c语言switch的用法
C语言中的switch语句是一种强大的控制结构,它通过与case、break和default的结合,实现了对程序流程的精细控制。这个语句就像是一个开关,当变量的表达式值匹配到某个case中的常量时,会执行该case之后的语句,然后跳出switch结构,直到遇到break跳出。如果没有匹配的case,执行就会转到default case,除非在...

c语言switch是什么意思
Switch语句是编程世界中的一个重要构造,尤其在C语言中扮演着关键角色。它是一种条件控制结构,用于根据不同的条件执行不同的代码块。当你需要根据某个变量的值来决定执行哪一段代码时,Switch就大显身手了。它通常与case标签、break和default关键字紧密配合,通过逐个检查case后的常量或表达式,找到匹配项...

相似回答
大家正在搜