c ++ - 数据类型以不同方式进行评估

时间:2016-11-19 04:41:40

标签: c++ types

我仍然是c ++的新手所以这可能是一个愚蠢的问题。在下面的代码中,为什么当我将索引的类型更改为signed char时,0.0的计算结果为true。签名字符不是1字节整数吗?

index > 25

2 个答案:

答案 0 :(得分:3)

让我们重新解释一下这个问题:

char index;
cin >> index;

可能更容易看到问题。当您将输入读入char时,您将获得用户输入的第一个字符的字符代码。在典型的系统中,这是ASCII,数字的代码在48到57之间。

因此,如果您在签名字符时输入index,则会得到一个> = 48的值。

答案 1 :(得分:0)

这是因为当用户输入0到25之间的值时,所评估的值与ascii表0 == 48(ascii)有关。数据类型char仅在输入的第一个值中,单个数字/字母,例如char foo =“1”