#include <iostream>
#include <string>
int main() {
char s2;
s2 = '1' - '0';
std::cout << s2;
std::cout << std::endl;
std::cout << '1' - '0';
std::cin >> s2;
}
Run Code Online (Sandbox Code Playgroud)
产生的输出是:
?
1
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么两条线不同?我期待并希望两个结果都是1.根据我的理解,它们应该是相同的,但这显然是错误的,有人可以向我解释一下吗?谢谢
为什么两条线不同?
第一个表达式(s2)的类型是char.第二个('1' - '0')的类型是int.
这就是为什么即使它们具有相同的数值,它们也会以不同的方式呈现1.第一个显示为ASCII 1,而第二个显示为数字1.
如果你想知道为什么'1' - '0'给出一个int,请参阅添加两个字符产生int
| 归档时间: |
|
| 查看次数: |
1717 次 |
| 最近记录: |