C++程序问题看不懂啊啊啊
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/29 10:48:33
C++程序问题看不懂啊啊啊
#include "iostream.h"
void main()
{
char c1='1',c2='2';
int x;
x=10*(c1-'0')+c2-'0';
cout
#include "iostream.h"
void main()
{
char c1='1',c2='2';
int x;
x=10*(c1-'0')+c2-'0';
cout
![C++程序问题看不懂啊啊啊](/uploads/image/z/16564763-11-3.jpg?t=C%2B%2B%E7%A8%8B%E5%BA%8F%E9%97%AE%E9%A2%98%E7%9C%8B%E4%B8%8D%E6%87%82%E5%95%8A%E5%95%8A%E5%95%8A)
首先,该段程序中没有字符串,只有两个字符 c1和c2,对应的值分别为 1和2;
楼主看不懂的应该是这句——x=10*(c1-'0')+c2-'0';
printf("%d,%c\n",c1);//输出的值为——49,1
49是1对应ASCII码;1若以char型存储时,存入内存的不是1,而是对应的ASCII码49
c1-'0' 这种char类型的加减运算,编译器会将其转变成对应的ASCII码,变成数值型的运算;
字符 ASCII
0 48
1 49
2 50
x=10*(c1-'0')+c2-'0';这句其实就相当于——x=10*(49-48)+50-48;
楼主看不懂的应该是这句——x=10*(c1-'0')+c2-'0';
printf("%d,%c\n",c1);//输出的值为——49,1
49是1对应ASCII码;1若以char型存储时,存入内存的不是1,而是对应的ASCII码49
c1-'0' 这种char类型的加减运算,编译器会将其转变成对应的ASCII码,变成数值型的运算;
字符 ASCII
0 48
1 49
2 50
x=10*(c1-'0')+c2-'0';这句其实就相当于——x=10*(49-48)+50-48;