C语言实现CCS程序时关于a<b<c类语句执行原理的测试

使用CCS软件写程序时遇到了C语言的语法问题

在程序中有一句: if( ‘0’ <= c <= ‘9’ )
此语句的目的是判断一个字符变量是否在符号 ‘0’ ~ ‘9’ 的区间内,然而当
c = ‘\0’
时判断结果还是1,意外地执行了条件语句中的程序。因此我写了测试程序测试该语句的原理。

在这里插入图片描述
通过测试发现,a <= b <= c 这种形式的语句并不能正确判断出 b 处于 a ~ c 的范围内。通过查阅书籍资料发现,a <= b <= c 这种形式的语句执行原理是:

从左到右执行。
先判断 a<=b,比如结果是0,
再用判断结果判断 0<=c ,此时如果c是正整数就能得到判断结果为1。

这就解释了为什么我程序中的 if( ‘0’ <= c <= ‘9’ ) 语句,即使 c=’\0’ 时依然能判断成功了。程序先判断 ‘0’ <= c ,得到0,再判断 0 <= ‘9’ ,就得到结果1。这种执行原理也可以解释上图测试程序的执行结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值