懂C语言的进来?

为什么把char改成int后,在下面的printf(%f%f%f%f还能显示出翻译后的密码,但是加了%d%d%d%d后就显示出一堆数字,这些数字是什么意思啊?有什么含义?)
图一问题
图二运行结果
图三代码

printf要求前面的格式字符串里面的数量,与后面的变量数量一致。

比如现在前面有5个%c,5个%d,一共10个,而后面只是提供5个变量,这种情况,在正常输出5个%c以后,编译器会打印出5个不确定的值以对应后面5个%d

所以就出现了一串奇怪的数字。

-------------

如果需要查看多种显示,可以这样:

%d连续输出,需要指定符号(比如空格)分割,否则就连在一起了。

--------------------

char改成int以后,或不改,都不影响结果。

char虽然是字符型,但是可以与int一起参与运算的。

而显示为字符,还是字符对应的ascii码,依赖于输出时的格式指定。%c就显示字符,%d就显示字符对应的ascii码,比如大写字母'G',其ascii码就是71

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-28
这个题考察对计算机数据类型的转换和理解。char是字符型 int是整型,仔细看下书上的讲解就理解了。
第2个回答  2021-01-28
需要了解%c与%d的意义
%c是输出ACSII码,%d是输出整形值
当一个变量输出会按照对应格式进行转换的,不会出现乱码,除非出现超出ACSII码能转换的数值。
相似回答