从今天开始我每天最少会做一道C语言的题目。
题目:
以下程序的运行结果是? (友情提示:字符'2'的ASCII码值为50)。
#include <stdio.h>
int main()
{
char a = '1', b = '2';
printf("%c,", b++);
printf("%d", b - a);
return 0;
}
我们知道类型的自动转换,也就是char进行运算的时候,会自动转换为int。
b++;输出b,b是字符,理所当然输出’2’;然后b++,相等于b = b+1; b+1的结果是int类型的51,而不是字符’3’;只是把这个int类型的51赋给char类型b之后,因此b保存的是字符’3’;
接下来b-a; 两个char变量自动转换为int,得到的结果是int类型的2;
C语言格式化输出是我们控制,而C++是根据表达式的结果自动判断类型的(当然我们可以强制转换),弄懂这一点很有必要。