鱼C论坛

 找回密码
 立即注册
查看: 1430|回复: 6

很是疑惑C中的 && 还有这鬼现象WTF??

[复制链接]
发表于 2016-12-6 14:06:25 | 显示全部楼层 |阅读模式
20鱼币
ude <stdio.h>

int main()
{
        char key;

        printf("请输入一个字符:");
        scanf("%c",&key);
                                                                        //                        这个是板块练习题里面的转换字符大小写的小玩意,但是,发现了让人郁闷的事情
        if('A'<= key && key  <= 'Z')    //这里这里,很是疑惑的 现在用&&是正常转换字符大小写的呢,现在还是正常的代码 请往下面看
        {
                key+=32;
        }
        else if('a' <= key && key <= 'z')
        {
                key-=32;
        }

        printf("您输入的字符经过转换后输出为:%c\n",key);

        return 0;
}




#include <stdio.h>

int main()
{
        char key;

        printf("请输入一个字符:");
        scanf("%c",&key);

        if('A'<= key <= 'Z')    //之前玩过会JAVA 所以习惯性地。。结果。。看图片吧 诶 几个小时也没调试出来到底什么原因
        {
                key+=32;
        }
        else if('a' <= key && key <= 'z')
        {
                key-=32;
        }

        printf("您输入的字符经过转换后输出为:%c\n",key);

        return 0;
}
2012.6.14.08.png

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-6 14:06:26 | 显示全部楼层
石头3494 发表于 2016-12-6 14:54
请问下那这个连续不等式会等价于什么呢可以告知下吗

'A' <= key <= 'Z' 等价于('A' <= key)<='Z',也就是先比较左一左二,比对后的结果再跟右一比。
左一左二比对结果不是true(1)就是false(0),不管是1或0,跟'Z'比一定是小于,所以原式恒成立。
C语言有很多陷阱,下面再举一"恒为true"的例子给楼主玩玩:
if (key = 'z')
        {
                printf("true");
        }
        else
        {
                printf("false");
        }

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +2 收起 理由
石头3494 + 5 + 5 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-6 14:09:40 | 显示全部楼层
&&这个符号的意思不是   '与'  的意思吗,虽然是有短路的原理,直接用
'A' <= key <= 'Z'   替换 'A' <= key && key <= 'Z' 就发生了问题了,小弟实在搞不懂,大神在哪里呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-6 14:17:03 | 显示全部楼层
C语言里没有连续不等式

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
石头3494 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-6 14:54:08 From FishC Mobile | 显示全部楼层
fengzhizijia 发表于 2016-12-6 14:17
C语言里没有连续不等式

请问下那这个连续不等式会等价于什么呢可以告知下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-6 16:04:51 | 显示全部楼层

谢谢了~~    话说等号的问题基本不会发生啦 以前玩JAVA的时候就被坑惨了  无力吐槽 C语言这么多坑等人跳的啊  苦逼逼的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-9 02:37:06 | 显示全部楼层
四楼赛高,c里没有连续不等式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 18:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表