C语言问题两个问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 19:15:11
main()
{
char a,b;
a='a';
b='b';
a=a-32;
b=b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}运行这段代码
显示的是a,b然后后面两个数却是确切的数字
a=a-32;
b=b-32;明明不知道a,b又怎么得出确切的数字

转义字符的使用。
main()
{
int a,b,c;
a=5; b=6; c=7;
printf(“ ab c\tde\rf\n”);
printf(“hijk\tL\bM\n”);
这个好杂有些看不懂

第一道题的结果是
A,B
65,66
因为整型变量和字符型变量可以相互运算
\t是水平制表(跳到下一个tab位置)
\r回车,将当前位置移到本行开头
\n换行,将当前位置移到下一行开头
\b退格,将当前位置移到前一列
所以结果是:
fab c de
hijk M

ascii码 的确是 一个 整形数字

第2个 你把转义字符表记得 就非常能看懂了

1.a实际上存储的是“a”的ASCII码,即97。减去32后是65,即为大写字母A。因ASCII码实际上是一个数字,故程序用%d的形式演示,则会输出“a”的ASCII码值;
2.“\t”指一个制表位Tab,“\r”表示回车不换行,“\n”表示回车换行Enter,“\b”表示一个退格。

字符在C语言中就是按整数(ASCII码)存储的,比如'a'就是65

\t是水平制表,\r是回车,\b是退格,\n是回车换行

如果需要各个转义字符的详细介绍,请另行提问.

char类型的若输出是%d的话,它会自动转换int类型(根据ASCII码值转)

\t水平制表(跳到下一个tab位置)
\r回车
\n换行
\b退格