为什么结果是a=%d,b=%d呢?

#include<stdio.h>

int main()
{
int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
return 0;
}


#include<stdio.h>

int main()
{
int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);  //★
return 0;
}


在代码标星那一行,你的输出格式写的是a=%%d ,b=%d%d
首先如果是a=%d,c=%d,表示按整型输出后面给出的变量的值。那么输出就是a=2,c=5
但是如果是上面代码中所写a=%%d ,c=%d%d这就会被拆成两部分看待,一是“%%”在C语言中就是输出一个“%”,而是“d”就是一个普通字符,所以当“%%d”在一起时,其含义就是输出“%d”这两个字符。所以输出的就是a=%d,b=%d。

望采纳!!

因为%%表示%本身,打印a和d的值要用%d,而不是%%d

多了一个%,两个%%表示打印一个%