2 sinat 31649471 sinat_31649471 于 2016.04.23 11:46 提问

C++字符输出小问题_自身++和+1在cout输出的时候不一致
c++

char ch='A';

1:ch=ch+1;
cout<<ch<<endl;——输出的就是B

可是为什么
2:cout<<ch++;——输出的就还是A,这个我明白了,下面那个是怎么回事?

3:cout<<ch+1;——输出的就是66了呢

7个回答

NeoTalen
NeoTalen   2016.04.23 12:17
已采纳

ch是char类型的,ch=ch+1的时候,右边的ch因为要和整数做加法而隐式转换类型为int型和1相加等于66,然后把这个值又赋值给一个char型变量左边的ch,所以你的问题1中打出来的是B。
问题3中就没有这个赋值的过程,直接就当作int型来输出了。

CSDNXIAON
CSDNXIAON   2016.04.23 11:52

cout输出小问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq_21570267
qq_21570267   2016.04.23 11:55

ch++是在打印之后再自加吧?

qq_21570267
qq_21570267   2016.04.23 11:56

ch+1不再是char类型了

big_thinker
big_thinker   2016.04.23 12:06

ch+1是一个表达式,在计算的时候ch会自动提升成整型,那么整个表达式的结果也就是一个整形的临时变量,即65('A'的ASCII值)+1,就是66

qq423399099
qq423399099   Ds   Rxr 2016.04.23 12:17

cout<<ch++;这个是后++哦,将之前的值参与计算(即'A'),然后才自增1变成了('B')
楼主在cout<<ch++;这句之后再加一句cout<<ch;就很清楚了

ljheee
ljheee   Rxr 2016.04.23 13:05

char ch='A';

ch=ch+1; 执行'A'+1,---字符可以与数字做 加减法,表示该字母向前、后位移后的字母,'A'+1就是B

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!