我有以下程序。格式說明符如何知道要打印多少個字節?
#include<stdio.h>
int main()
{
char a='b';
int b=11299;
char d[4]="abc";
printf("value of a is %d\n",a);
printf("value of b is %c\n",b);
printf("value of c is %d\n",*d);
char *c=d;
c=c+1;
printf("c is %d\n",*c);
}
我很困惑%d格式說明符。我在想它會打印4個字節的數據。但是從上面的程序(第一個和最後一個printf)可以看出,當使用char參數時,它只能打印一個字節。爲什麼%d只打印一個字節?它如何知道要打印多少個字節?
這是[基本MSVC頁](https://msdn.microsoft.com/en-us/library/56e442dc.aspx)約'printf'格式說明符,幷包含更多詳細信息的鏈接,例如寬度。普通的'%d'說明符根據需要使用盡可能多的數字將給定的參數打印爲「int」。 –
當'a'被傳遞給'printf()'時,它被編譯器提升爲'int'。 – alk
'char'被提升爲'int'。 –