懂C语言的进来?
为什么把char改成int后,在下面的printf(%f%f%f%f还能显示出翻译后的密码,但是加了%d%d%d%d后就显示出一堆数字,这些数字是什么意思啊?有什么含义?...
为什么把char改成int后,在下面的printf(%f%f%f%f还能显示出翻译后的密码,但是加了%d%d%d%d后就显示出一堆数字,这些数字是什么意思啊?有什么含义?)
图一问题
图二运行结果
图三代码 展开
图一问题
图二运行结果
图三代码 展开
3个回答
展开全部
printf要求前面的格式字符串里面的数量,与后面的变量数量一致。
比如现在前面有5个%c,5个%d,一共10个,而后面只是提供5个变量,这种情况,在正常输出5个%c以后,编译器会打印出5个不确定的值以对应后面5个%d
所以就出现了一串奇怪的数字。
-------------
如果需要查看多种显示,可以这样:
%d连续输出,需要指定符号(比如空格)分割,否则就连在一起了。
--------------------
char改成int以后,或不改,都不影响结果。
char虽然是字符型,但是可以与int一起参与运算的。
而显示为字符,还是字符对应的ascii码,依赖于输出时的格式指定。%c就显示字符,%d就显示字符对应的ascii码,比如大写字母'G',其ascii码就是71
展开全部
这个题考察对计算机数据类型的转换和理解。char是字符型 int是整型,仔细看下书上的讲解就理解了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要了解%c与%d的意义
%c是输出ACSII码,%d是输出整形值
当一个变量输出会按照对应格式进行转换的,不会出现乱码,除非出现超出ACSII码能转换的数值。
%c是输出ACSII码,%d是输出整形值
当一个变量输出会按照对应格式进行转换的,不会出现乱码,除非出现超出ACSII码能转换的数值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询