首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf("%%d%d" 123); C是如何样编译的呢

2012-02-15 
printf(%%d%d, 123) C是怎么样编译的呢?printf( %%d%d ,123)C是怎么样编译的呢?输出%d123[解决办法]

printf("%%d%d", 123); C是怎么样编译的呢?
printf( "%%d%d ",   123);  
C是怎么样编译的呢?
输出
%d123

[解决办法]
想输出%
就得用%%
比如:printf( "%f%% ",1.0/3);
这个和转意字符有类似
------------------------------------去看看任何一本c语言的书应该都有提起
至于为什么?
你参考linux中printf的实现会发现
在vsprintf中(printf是调用vsprintf实现的)在找到%后的switch最后的default中
是这样的:
if(*fmt!= '% ')
*str++= '% ';
if(*fmt)
*str++= '% ';
.
.
.
.
即;如果%后面不是格式化参数就直接把他写到str中(在这里也就是显示出来啦)
----------------
不知道说清楚没。。。。

热点排行