gpt4 book ai didi

c++ - 减去数字的字符

转载 作者:太空狗 更新时间:2023-10-29 20:23:32 29 4
gpt4 key购买 nike

我正在尝试了解代码中发生了什么:

cout << '5' - '3';

我正在打印的是一个整数吗?为什么当我使用减法运算符时它会自动将它们更改为整数?

最佳答案

在 C++ 中,字 rune 字仅表示整数值。

'5' 这样的基本文字表示一个 char 整数值,几乎所有现存的字符编码都是 48 + 5(因为字符 0 表示为值48,C++ 标准保证数字值是连续的,尽管字母没有这样的保证)。

然后,当您在算术表达式中使用它们时,甚至只是编写 +'5' 时,char 值将被提升整数。或者更不精确地,“通常的算术转换”开始,并转换为最接近的类型,即 int*higher 可以表示所有 char值。这种类型的变化会影响例如cout 将显示该值。


<支持>* 由于 char 根据定义是单个字节,并且 int 不能小于一个字节,而且实际上所有位int 的值表示位,充其量只能在最迂腐的​​形式中将 char 转换为比 int 更高的类型>。如果正式存在这种可能性,那么它就是纯语言律师的东西。

关于c++ - 减去数字的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792600/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com