a=5,b=32,c=7;printf("a=%d,b=%c,c=%d",a,b,c);把b转为char型输出,32根据ASCII码表上对应的是 空格 ,所以输出就是 a=5,b= ,c=7如果你仅仅要输出a=5,b= ,c=7,而不给b赋值char的话。。。直接 printf("a=%d,b= ,c=%d",a,c);就行了。。不用这么复杂。