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

怎么将char变量的值赋值给int变量里

酣战到底 发布于 2013-05-30 18:33, 3692 次点击
char a=200;
int b;
6 回复
#2
lonmaor2013-05-30 18:51
b = a;

会静默转换的。
按C++规范点可以写成
b = static_cast<int>(a);

旧的强制转换方式是
b = (int)(a)


[ 本帖最后由 lonmaor 于 2013-5-30 18:52 编辑 ]
#3
酣战到底2013-05-30 19:07
回复 2楼 lonmaor
没用啊,结果是-56
#4
qjyzpsy2013-05-30 19:49
当你定义的a的值不大于于127是楼上的方法是可以的,但超过127就会出错。因为用整数来定义字符型变量,表示的是ASCII码中该整数对应的字符,二ASCII码只有127个 ,所以当定义的整数超过127时,此定义就没有意义,以下操作都会出错!
#5
lonmaor2013-05-30 21:01
以下是引用qjyzpsy在2013-5-30 19:49:23的发言:

当你定义的a的值不大于于127是楼上的方法是可以的,但超过127就会出错。因为用整数来定义字符型变量,表示的是ASCII码中该整数对应的字符,二ASCII码只有127个 ,所以当定义的整数超过127时,此定义就没有意义,以下操作都会出错!


我大意了。没注意定义的a就溢出了。
#6
子楠2013-05-30 21:56
#7
深藏在云端2017-05-09 12:18
不要用char
用unsigned char a=200;
1