【发布时间】:2020-05-22 15:07:32
【问题描述】:
我的代码:
#include <stdio.h>
int main()
{
char x, y;
for(x='a';x<='c';++x)
{
for(y='a';y<='c';++y)
{
printf("%c %d\r\n",x,y);
}
}
return(0);
}
我想要: 一个 一个 一个 一个 b b ...等
我得到: 97 98 99 b 97 b 98 ...等
我错过了什么?
【问题讨论】:
-
你在
%d里面有一个printf -
@PiRocks 不,不会。
char值将经过默认参数提升为int。 (事实上,%d和%c都需要int类型的参数。) -
@PiRocks — 不会。在
printf()的调用中,x和y中的值被提升为int,因为printf()原型末尾的省略号, ...)。