二级c语言 case '1'跟case 1的区别? \1和\11什么意思?

如题所述

case '1'中的'1'是字符1,其值为十进制49,所以它与case 49是一个意思;而case 1中的1是数字1,就是十进制1了。下面的代码可帮助理解:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char x;
    scanf("%d",&x);
    switch(x){
        case 1:
            printf("123\n");//输入1,则输出123
            break;
        case '1': 
            printf("abc\n");//输入49,即'1'则输出abc
            break;
    }
    return 0;
}

\在C中有个功能叫“换码引导符”, \1是用八进制表示的ASCII码1,同样\11是用用八进制表示的ASCII码9。实用中要用单引号括起来写成'\1'和'\11',或用双引号括起来使之成为字符串,否则要报错。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12
case'1'是错误地表达,case 1才是正确的,这是原则问题,\1和\11是根据ascll码走的,表示八进制。十进制数是1和9。本回答被提问者采纳
第2个回答  2014-10-17
'1' 是字符常量,等于 它的 ASCII 值,好像是 十进制 49。字符 1。
case '1': 是 case 49:
case 1: 是 case 1:

\1 和 \11 是 8 进制
第3个回答  2014-10-17
'1'表示1字符,switch()中是char型
1是整型变量,switch()中是int型或BYTE型
相似回答