为了账号安全,请及时绑定邮箱和手机立即绑定

double temp=11.5;isdigit(temp)是true还是false?

double temp=11.5;isdigit(temp)是true还是false?

C C++
xungeer29 2017-10-08 20:15:35
double temp=11.5;isdigit(temp)  是true还是false?
查看完整描述

2 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

isdigit函数有参数为double类型的重载吗?

int isdigit(char c)-->检查参数是否为十进制数字字符

查看完整回答
2 反对 回复 2017-10-08
  • xungeer29
    xungeer29
    我遇到一题,答案有 double temp; while(!isdigit(temp));//题目想让double temp是数字时进入循环 我搞不懂是temp什么情况进入循环,如果是十进制数那返回1还是0? temp=3、3.23、21、21.34时哪几个可以进入循环
  • 望远
    望远
    传入的double类型数据会被截断为int类型,在程序内部会根据这个ascii码来判断,当且仅当数据为48-57(对应字符0-9)时返回1,否则返回0
?
onemoo

TA贡献883条经验 获得超454个赞

应该是 false

isdigit 的参数是 int 类型,返回类型也是 int。 但其实这个函数是判断参数值所表示的字符是否为数字字符,所以它只在参数可以表示为字符的时候才能正常工作。 如果判断不是数字则返回 0。


你这里实际传入的参数是 double 类型。但是没关系,实参传入形参时可以发生自动转型。那么形参实际接收到 int 值 11。 而 11 通常并不表示数字字符(比如在ASCII中就不表示为数字),所以会返回 0。

如果问是否为 false 的话,那么 0 表示 false。


查看完整回答
1 反对 回复 2017-10-08
  • 2 回答
  • 0 关注
  • 2352 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信