c语言中的switch case语句

        switch……case语句中,switch后面跟一个变量,这个变量不可以是字符数组,字符指针,字符串数组,浮点型(实型)。它可以是整型,字符型(在本质上也是整型)。所以这导致case后面的常量表达式只能是整型和字符型,不可以是字符串,字符数组,实型等等类型。这一切都是在c语言中的。在java中有所不同,java中是可以跟字符串的。

这是为什么呢?这就说到了字符和字符串的区别的了。

        形式上: 字符常量是单引号引起的一个字符;字符串常量是双引号引起的若干个字符;
        含义上: 字符常量相当于一个整型值,可以参加表达式的运算;字符串常量代表一个地址值(该字符串在内存中存放的位置);
        占内存大小:字符常量只占一个字节;字符串常量占若干个字节,(至少一个字符结束标志)

        所以如果可以使用字符串是判断了一个位置,这就相当于判断说这个物体是不是香蕉,而你的判断是它在桌子上,这显然是不合适的。所以,后面是不可以为字符串的。

        PS:自己的理解,若有错误,请帮忙矫正!

你可能感兴趣的:(c语言中的switch case语句)