c语言面试题——分支

在这里插入图片描述

第五行: a > 5 只有两种结果,真(1) 和 假 (0), 所以表达式结果为0, 即为 case 0, 所以结果为 打印出 this is 0

严格上不能说是真(非0)和假(0), 只能说结果 是 1 或 0

修改: 如果 表达式为 a < 5 , 则结果为真(1), 所以表达式结果为1, 即为 case 1, 所以结果为 打印出 this is 1

分析:

①switch表达式里只能放整数类型【int、char、bool、short、long、enum枚举】(并不是什么都可以往里边放),如果表达式里放 浮点型float的化,会报错。(所以上图中,用到表达式为 a > 5, 取得结果为bool类型,虽然有警告,但还是可以运行的)

②switch的表达式和case标签后面的标签,只能是整数,所以下图 将会报错

在这里插入图片描述

③两个case标签后面的标签 经过转化后的值,不应该是相同的值, 因为 ‘a’ 的ASCII为97,所以下图将会报错

在这里插入图片描述

在if 表达式判断中,不管是 a > 5 还是 a - 2 ,判断的结果均为真(1)或假(0).

但是在swich后面的表达式:如果是判断表示式,则结果只为真(1)或假(0). 但是如果为普通表达式,那得出来的只能为他自己的结果,即为2,并不是1. 所有a - 2 它并不是进行所谓的真假判断,即相当于写了个switch(2)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值