C++的不同数据类型值的比较语句 http://www.nowcoder.com/profile/380772/test/2198830/25642?onlyWrong=0

本文探讨了C++中不同类型变量的比较语句,并指出了其中存在的问题。具体包括布尔类型、整型、浮点型及字符串类型的比较,强调了浮点型因精度问题不宜使用等号比较及字符串类型正确的比较方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.nowcoder.com/profile/380772/test/2198830/25642?onlyWrong=0
以下是C++的不同数据类型值的比较语句,请问这些判断语句中作为条件部分的语句编写有问题的有:

正确答案: C D   你的答案: D (错误)

如果变量bVar是布尔类型:if(false==bVar){doSomeThing();}
如果变量nVar是int型:if(0==nVar){doSomeThing();}
如果变量fVar为浮点型:if(0.02=fVar){doSomeThing();}
如果变量sVar为字符串型:if(""==sVar){doSomeThing();}

本题知识点

共有16条讨论添加解析

  • 莫笑☁️輕狂头像

    莫笑☁️輕狂

    c选项肯定错了,浮点型精度问题
    d选项好像也是错了。。“\0”跟“”比较的结果也是1.。。。
    发表于 2015-09-08 18:14:53 回复(3)
  • 陋室头像

    陋室

    D估计大家都知道字符串用==比较没有意义
    说说C吧,也是基本的,浮点型(double,flout)由于是用于科学计算的,尾数一定会不精确的,所以不能用==比较,Java可以用Math.abs(fVar-0.02) < 0.0000001表示等于,或者直接用Double.compare(d1, d2)比较,C也一样。
    发表于 2015-09-08 16:21:21 回复(5)
  • 追梦_吹吹风头像

    追梦_吹吹风

    c选项,float有精度问题,尾数不精确,比较会出问题
    d选项,字符串比较,一般用strcmp(str1,str2),直接用==比较两个字符串,应该比较的是字符串的首地址是否相等,那就不是真正的字符串比较了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值