请观察下面的C程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:47:29
main()
{int i;
char c;
i='a'
c=97

printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i)

输出结果是
a,97
a,97

为什么?在上述中,并没有把'a'赋予给i,但为什么%c,c的结果,确实显示出a呢? 同理, %d,i 的结果又为什么是97?

当中出现了什么问题?(C程序不可能有错,是清华大学编写的)
请说明原因,可+分

这是格式控制符和ASCII码的问题
首先%c输出的格式就是字符
因为小写字母a的ASCII值正好是97
所以97以字符格式输出就是a

a的ASCII码是97

'a'的ascii码是97

在C里,char类型以ascII码存放,所以一个char对应有一个ascII码,而ascII码就是int形的。。。
'a'的ascII码就是97.。。。
复值以及输入输出时,int 的ascII码等价于char的相应字符。。。

a的ASCII码值为97
在C和C++中int和char可以直接相互转换的