为什么把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