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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++ cout输出字符
cout输出字符时,可以使用单引号 :cout << ';' << endl; //输出分号";"仅可输出字符型,如果单引号内是两个或多个字符,则会输出对应的int值(将字符转换为对应ASCII码值) 如:cout << ';;' << endl; //输出15163“;”对应的ASCII码为59(0x3B),“;;”为0x3B3B,对应十进制为15163
关于cout输出字符串指针
char *p="abcd";    在C语言里,输出一个字符串的指针很方便,直接printf("%p/n",p);就输出了。而C++里cout太自作聪明了,为了省去我们循环输出字符的麻烦,cout  这个时候要输出p的指针值就只能先将其转为void *再输出。因为void型, cout没法输出,只能乖乖输出指针。此外cout void main(){    char *p2=
【C/C++】Cin与Cout
为成为国际语言,C++必须能处理需要16位的国际字符集Unicode,于是在传统的8位char型的基础上添加了wchar_t字符类型。在程序包含iostream文件时,将自动创建8个流对象:cin、cout、cerr、clog以及相对应的用于宽字符流的:wcin、wcout、wcerr、wclog。                                       Cin 可
【程序】给C++的cout和fstream添加Unicode支持,使其能向屏幕或文件输入/输出wchar_t字符串
【程序】 #include #include #include #define RDBUF_LEN 200 using namespace std; ostream &operator << (ostream &os, const wchar_t *wstr) { if (os == cout) WriteConsoleW(GetStdHandle(STD_OUTPUT_HAN
cout 输出字符串(指针)常见问题及put,write函数
C++ ostream类为下面的指针类型定义了插入运算符函数: const signed char *; const unsigned char *; const char *; void *; C++用指向字符串存储位置的指针来表示字符串,指针的形式可以是char数组名,显式的char指针或用引号括起来的字符串。 下面是一个简单输出字符串的例子: #include using names
C++——cout输出流与字符指针
cout输出流cout语句的一般格式为: cout<<表达式1<<表达式2<<……<<表达式n; cin语句的一般格式为: cin>>变量1>>变量2>>……>>变量n;在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或’\n’,ends,flus
C++ 入门教程(五) 使用 std::cout 输出和数字分位符的使用
使用 std::cout 输出数字和字符串 std::cout 除了可以输出字符串(双引号引起来的文字)外,还可以输出整数,小数等,也可以连续输出,用法和输出字符串一样。 #include int main(void) { std::cout << 1 << std::endl; std::cout << 100000000000000000 << std::endl; std:
C++ cout输出 字符型变量的地址
点击打开链接
C++ cout输出 字符型变量的地址
在C++中,如果cout一个字符数组的话,那么它会沿着这个地址,一直输出这个字符串,直到遇到'\0' 实际上,C++标准库中I/O类对输出操作符 #include int main(){ const short ITEMS=5; int intArray[ITEMS]={1,2,3,4,5}; char charArray[ITEMS]={'L','M','Y','L','
使用cout/pintf输出16进制,8进制,2进制数据
使用cout/pintf输出16进制,8进制比较常见,输出2进制的方法倒比较新颖。比我在之前的博客文章的移位方法要好一些了。 [cpp] view plain copy // 【MoreWindows工作笔记3】 使用cout/pintf输出16进制,8进制,2进制数据  #include   #include   #include   using namespace