这个程序的结果是几呢?为什么啊 可以解释一下吗?

来源:百度知道 编辑:UC知道 时间:2024/06/24 22:44:09
#include<stdio.h>
void main()
{
int a=-1;
printf("a=%c\n",a);
}
我试了试怎么结果是空的啊,什么也没有,总是这样的:“a=”,好象并不是随机生成的;
另外,我看书上好象是说:在printf函数中的和在赋值符=的时候是强制无条件转换的;
我现在是一头雾水啊,请这几位网友再说清楚点,泡泡在这谢谢你们了
都试过了 一样的

结果是:
a=#

其中“#”是个不确定的字符,,,
C语言中的类型隐式转换顺序是
char ---> int ----> float ---> double
必须按照这个顺序进行隐式转换,如果顺序反向转换那就要用强制类型转换,,否则就会输出一个不确定的字符(或数字)

你用的是什么编译系统,我用的是TC2.0结果和我说的一样,你如果用的其他编译系统,可能结果会不同,但是我可以确定,如果是强制类型转化必须用它的格式,如:float m=2.0; (int)m;

打印-1对应的ASCII码值。

结果是“a=”(不包括引号)
你给出的a的输出形式是字符型,也就是ASCII码,但是你给的a的值是-1
ASCII码只在0到255间有值,根据字符型的长度你也会知道
所以不会有输出
是我说的那样不~~~
a=还是会有的