【发布时间】:2019-07-13 14:06:06
【问题描述】:
两个例子
printf("\n %c , ((unsigned char)a[i]+100);
printf("\n %c , -11);
返回
?
?
【问题讨论】:
-
这不太可能是真正的
?字符。更有可能是您的终端无法显示字符,或者如果您使用的是图形终端,则当前字体中不存在该特定字符。 -
发布
printf("\n %d" , ((unsigned char)a[i]+100);的结果会有所帮助。 -
@chux 请原谅我,如果我问的是一些基本的问题,但
%d和(unsigned char)不会错吗?不应该是%u吗?我总是难以理解默认的 arg 提升。 -
@AjayBrahmakshatriya 是的,
"%u"会更好。UCHAR_MAX <= INT_MAX没有区别。 -
@chux,但如果我理解正确,
unsigned int的位表示将被传递,它将被重新解释为int。标准是否允许它们具有不同的表示形式?
标签: c char printf format-string