C语言 菜鸟求助初级程序问题...

原题是
#include<stdio.h>
void main()
{
char c1,c2;
c1=97; c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}
能否将int c1,c2 改成 int c1,c2?

然后我个人觉得不能,原题的运行结果应该是
a b
97 98
如果改完了以后运行结果就为97 98 因为char c1,c2 其实也就表示了将 a b 赋值了进去,然后97 98又以ASCII码的形式在内存中,所以他可以任意调用,而当int a,b以后 只是把 97 98 赋值了,所以 只能输出97 98而不能输出a b。不知道我理解的对不对,本人初学C语言...还望大家多多指教。

恩,对的,可以逆向转换。但要注意不要超出数值的范围。
char的整数范围是-128-127,你赋予的值如果超出这个范围,可能就和你想的不一样了,呵呵。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-16
int的话也是可以先输出ab的。
int类型赋值完后,a为97,b为98.
但是在第一个printf语句里,是用%c进行输出的。即转换为字符。
第2个回答  2010-03-16
可以的,没有问题,C语言支持int与char的隐式转换,正逆向都可以
GCC下验证完全没有问题
相似回答