【问题标题】:How it became possible for integer and character be added and return a summation of integer type?如何将整数和字符相加并返回整数类型的总和?
【发布时间】:2021-11-14 05:53:58
【问题描述】:
#include<iostream>
using namespace std;

int main()
{
    char a = 77;
    int b = a + 3;
    cout << a << endl;
    cout << b << endl;
    return 0;
}

仔细看,a 持有字符 'M',根据其 ASCII 值 77。变量 a 实际上在这里返回 'M'。如何将M+3=80 存储在int 类型变量中?

【问题讨论】:

  • 有趣的事实:77 的类型为 int。所以实际上你的困惑已经从第一行开始。
  • char a 是一个 integer 类型,值为 77。int b 是一个 integer 类型,值为 77 + 3 或80.cout根据对象的值和类型打印出文本。
  • a 的值为77cout 处理 char 与其他整数类型不同,它假定您要打印相应的字符而不是数值。

标签: c++ char integer ascii


【解决方案1】:

char 类型是一个整数类型。句号。 char 表示它必须代表一个角色,这并没有什么神奇之处。所以

char a = 77;

完全一样
int a = 77;

除了char 可能小于int,因此它可以表示的值范围可能更有限。

同样,

int a = 'A';

'A' 的值赋给a,就像

char a = 'A';

会的。

最后,

char a = 77;
a = a + 1;

完全一样
int a = 77;
a = a + 1;

确实如此。它们都是整数类型,并且都存储整数值。

char 不同的地方在于做输入输出的函数。例如,

char ch = 'A';
std::cout << ch << '\n';

将显示字符A,而

int i = 'A';
std::cout << i << '\n';

将显示字符A的数值,该值取决于编译器使用的字符编码;这些天几乎总是 ASCII,但这不是必需的。

【讨论】:

  • 字符 x =77; std::cout
  • @SamiulIslam — x类型charx 是 77。实现 std::cout &lt;&lt; x 的库代码会根据 x 的类型做不同的事情。当x 的类型为char(如您的代码sn-p 中)时,库显示x 的值所代表的字符。对于其他整数类型,它将值转换为十进制数字并显示这些数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 2015-10-05
  • 2016-04-30
  • 1970-01-01
  • 2013-12-03
相关资源
最近更新 更多