main() {int a=2,b=5; printf("a =%%d,b=%%d,a,b); },输出的结果为什么a=%d,b=%d呢?我一直搞不懂,谢谢!

我是初学者,很多不会,所以也许这是一个简单的问题,但是你能用2分钟回答一下吗?万分感谢.............

由于单个的%有别的用处,所以要输出单个%时必须双写成%%,显然上例中%%d就只输出%d了;按C/C++“贪心法”%%d被解释成(%%)d而不会解释成%(%d)。如果想达到输出“%d”的效果,得写成%%%d才可以,这就被解释成(%%)%d了,最后输出就是%X形式。如:

#include "stdio.h"
int main(int argv,char *argc[]){
int a=24;
printf("a = %%%d\n",a);
return 0; 
}

输出样例:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-07
%符号会将它后面的一个字符转义,比如%d就代表数字,%s代表字符串,而%%就代表%字符
第一个%是转义符号,第二个%是告诉printf函数要输出%本回答被提问者采纳
相似回答