Sam*_*ams 4 c switch-statement
我正在使用switch语句在C语言中编写程序,我想知道编译器是否会接受诸如的语句
case !('a'):
Run Code Online (Sandbox Code Playgroud)
我在网上找不到任何使用!switch语句的程序.
Pau*_*ter 12
你真的尝试过吗?
好吧,我做了(Mac OS X上的gcc).
!是逻辑否定运算符,并且!(x)返回1表示x为0,其他为0.
'a'具有在编译时已知的值,因此编译器的计算结果!('a')为0.所以
case !('a'):
Run Code Online (Sandbox Code Playgroud)
相当于
case 0 :
Run Code Online (Sandbox Code Playgroud)
它甚至不会生成编译器错误,并且运行正常.
我认为这不是你想要做的,而是想要一个能够捕获除'a'之外的所有值的情况,而不是单个值0.抱歉但是switch-case语句不能那样工作.case关键字后面的表达式必须是编译器已知的值.
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |