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

2025-01-05 05:36:34
推荐回答(2个)
回答1:

由于单个的%有别的用处,所以要输出单个%时必须双写成%%,显然上例中%%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; 
}

输出样例:

回答2:

%符号会将它后面的一个字符转义,比如%d就代表数字,%s代表字符串,而%%就代表%字符
第一个%是转义符号,第二个%是告诉printf函数要输出%