在C语言中 printf("a=%%d,b=%%d\n",a,b);里的%%d是什么意思?

如题所述

%%是输出%号。%是转义符。%d 输出整型。%nd 输出的整型宽度至少为n位,右对齐,]即宽度至少为5位,位数大于5则输出实际位数,%0nd 用得比较多,表示输出的整型宽度至少为n位,不足n位用0填充。

C语言中%有两种意思,第一表示求余符号,经常会用到判断一个数是不是能被另一个整除

如:7%3=1(7除以3,余下1,) 1%3=1(1除以3除不尽,余下1);

如判断一个m是奇数还是偶数?代码如下:if(m%2==0) print f("偶数")。

2、引导符,用于引导输入输出项表列的格式。

例如:print f("%d%c%f",a,b,c);意思就是a以整型输出,b以字符型输出,c以实型输出。

扩展资料:

优先级:C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。

这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。

参考资料来源:百度百科-%

参考资料来源:百度百科-运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-26

在C语言中printf("a=%%d,b=%%d\n",a,b);里的%%d是程序输出结果。

%d是表示后面的变量b的值用整数形式显示。

后面的两个%,表示显示一个%。

如果b的值是20,则输出是“20%”。

如果要输出整数a,b的值,应改为printf("a=%d,b=%d\n",a,b)。

扩展资料

printf格式控制符处理参数

printf有很多格式控制符,例如%d,它在处理输入时,会从堆栈中取其对应大小,即4个字节作为对应的参数值。也就是说,当传入参数和格式控制符匹配或者在经过类型提升后和格式控制符匹配的时候,参数处理是没有任何问题的。

但是不匹配时,可能会出现未定义行为。例如,%f期望一个double(8字节)类型,但是传入的参数是int(4字节),那么在处理这个int参数值,可能会多处理4个字节,并且也会造成处理数据错误。

本回答被网友采纳
第2个回答  2017-08-21
这里是错误写法。
%%表示转义字符%。
所以这里会输出
a=%d,b=%d
与后续的a,b值无关。本回答被网友采纳
第3个回答  2020-04-12
%%就是输出字符%,后面的d就只是字符串,不再是格式声明,所以,后面的a,b就输不出来。如果想输出%,应该是%%%d或者%d%%
第4个回答  2017-10-08
输出结果是:a=%1,b=%d
其中的1是你上面的a的赋值,比如1.
%%表示输出%
%d表示输出一个有符号的十进制数
%%%d 你应该把两个分开理解%%和%d