【发布时间】:2010-10-18 13:34:00
【问题描述】:
为什么会这样调用:
printf("%d %d", 'a', 'b');
导致“正确”97 98 值?
%d 表示函数要读取 4 个字节的数据,而 printf 应该无法分辨接收到的参数的类型(除了格式字符串),那么为什么打印的数字不是|a||b||junk||junk|?
提前致谢。
【问题讨论】:
-
%d 是一个有符号整数,没有说明所涉及的字节数......
-
@leppie:但是,它必须以一定数量的字节传递,并且
printf必须从堆栈中选择一定数量的字节,并且这些特定的数字必须是一样的。 -
'a'的类型为int而不是char。