问题描述
- C++字符输出小问题_自身++和+1在cout输出的时候不一致
- char ch='A';
1:ch=ch+1;
cout<<ch<<endl;——输出的就是B可是为什么
2:cout<<ch++;——输出的就还是A,这个我明白了,下面那个是怎么回事?3:cout<<ch+1;——输出的就是66了呢
解决方案
ch是char类型的,ch=ch+1的时候,右边的ch因为要和整数做加法而隐式转换类型为int型和1相加等于66,然后把这个值又赋值给一个char型变量左边的ch,所以你的问题1中打出来的是B。
问题3中就没有这个赋值的过程,直接就当作int型来输出了。
解决方案二:
cout输出小问题
解决方案三:
ch++是在打印之后再自加吧?
解决方案四:
ch+1不再是char类型了
解决方案五:
ch+1是一个表达式,在计算的时候ch会自动提升成整型,那么整个表达式的结果也就是一个整形的临时变量,即65('A'的ASCII值)+1,就是66
解决方案六:
cout<<ch++;这个是后++哦,将之前的值参与计算(即'A')然后才自增1变成了('B')
楼主在cout<<ch++;这句之后再加一句cout<<ch;就很清楚了
解决方案七:
char ch='A';
ch=ch+1; 执行'A'+1---字符可以与数字做 加减法,表示该字母向前、后位移后的字母,'A'+1就是B
时间: 2024-08-02 20:28:06