注册 登录
编程论坛 C++教室

新手的int与char的问题 内有图!

qwe290869133 发布于 2010-04-12 22:14, 832 次点击
我教程里编写一个输入2个数字后计算2个数字的和,然后我先
只有本站会员才能查看附件,请 登录
用【int a,b;】的时候计算1+1结果是对的,如图
只有本站会员才能查看附件,请 登录
,这个int是整数型的。
然后我用char a,b;来定义2变量,如图
只有本站会员才能查看附件,请 登录
,然后我打1回车1回车,就是1+1咯,可是结果却是
只有本站会员才能查看附件,请 登录
等于98,我想知道下这个原因,希望高手帮帮菜鸟
9 回复
#2
debroa7232010-04-12 22:23
char 类型,cin输入的1,a则是ASC码,可就不是十进制1了,查查ASC码的'1'的十进制是多少,就明白为什么了。
如果你愿意设个断点看看cin后的a,b的值。
#3
yyblackyy2010-04-12 22:30
char a,b; 这是声明字符型的
cin>>a>>b;给a,b赋值  a,b的数值等于字符的asc码值
例如楼主的1 1
1的asc码值等于49 49+49=98
所以返回98
#4
qwe2908691332010-04-12 22:48
只有本站会员才能查看附件,请 登录
ACS码对照表来了,1=49没错 不过对于我新手还不清楚ASC码是什么,有什么用,有大虾解释下最好,通俗点,另外我想问问那用char来定义2个数相加求和可以编写的出吗?可以的话希望写一下再次感谢
#5
judking2010-04-12 22:51
char 对应输出的是asc码~不同类型的变量有不同的作用~加减法只对数字类型的变量,而不是字符型的变量~
#6
qwe2908691332010-04-12 22:57
LS的 我明白了 谢谢大家
#7
h6460281472010-04-12 23:05
我是一个没学过C++的路人~~~~~~~~~~~~
#8
TIC2010-04-13 09:44
注意:字符在内存中的储存时转化为ASCII值新式的!!
#9
debroa7232010-04-13 21:11
语言只是面向编程者的助记符,二进制才是代码的真实面目,了解它们在内存中的形式对理解编程有些许帮助。
所以编译平台提供了内存查看器、寄存器查看器、调用堆栈查看器等等,这些都是帮助理解代码、理解语法、寻找BUG的利器。
#10
阿标兄2010-04-14 20:17
我刚学了十几天,大家一起努力哦!
1