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型来输出了。
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