问题标题:
【C语言中的%%d是什么意思】
问题描述:
C语言中的%%d是什么意思
李振回答:
printf("%%d");//会输出%d
因为%用来作格式符,如%c,%与c搭配表示输出一个字符,%d表示输出一个整数.
那么怎么输出%呢?即用%%表示输出一个%
胡立华回答:
%%%d呢
李振回答:
一般是这么用吧:printf("%%%d",123);会输出:%123printf会一个个来处理格式串“%%%d"中的格式符,它从第一个%开始看,发现%%是连续的两个,输出一个%,剩下的是%d,表示输出一个十进制表示的整数
胡立华回答:
那你看一下这个程序:#includevoidmain(){inti=8,j=9;printf("%%d,j=%%%dn",i,j);}输出结果是怎样的,谢谢!
胡立华回答:
那你看一下这个程序:#includevoidmain(){inti=8,j=9;printf("%%d,j=%%%dn",i,j);}输出结果是怎样的,谢谢!
李振回答:
%d,j=%8不是%9
胡立华回答:
为什么
李振回答:
答案是没有错啊。你看printf是怎么输出的吧:"i=%%d,j=%%%dn"前两个格式符是%%,都是输出%,不需要对应的格式串后面的参数,最后一个格式符是%d,对应一个参数,是i
胡立华回答:
为什么是i不是j
李振回答:
是这样的,printf是通过格式串来知道应该怎么格式化输出格式串后面的参数的,如:printf("%c,%d",'a',123);printf在执行时,看格式串中有两个格式符,一个是%c,一个是%d,它就知道了格式串后面有一个参数是字符,另一个参数是整数了。就按格式串指示的来格式化输出。那么printf("%%d,j=%%%dn",i,j);也是类似这样执行的。它看到有三个格式符:%%%%%d前两个格式符是表示输出%的,%d是表示后面有一个参数是整数,请注意:格式串后面的整数是哪一个?就是调用时格式串"%%d,j=%%%dn"后面的i啊。所以格式化输出i,j被忽视了。因为格式串中没有对应j的格式符。
点击显示
其它推荐
热门其它推荐