int main()
{
int x,y;
int z;
char s='a';
x=10;y=4;
z = x/y;
printf("%d\n",s); //97
printf("%f",z); //some odd sequence
return 0;
}
在上述代碼中,由於控件字符串中的int類型,char s在打印時自動轉換爲int,但在第二種情況下,不會發生int轉換爲float的轉換。爲什麼這樣?在c中的類型轉換
難道'printf'從浮點寄存器中爲'%f'指定符獲取參數嗎?無關:你輸錯了'怪異'。 – 2012-01-17 15:25:43
@DanielFischer不,浮點值也傳遞到棧上。您可以通過查看'va_arg'宏的源代碼來看到這一點。 – 2012-01-17 15:27:48