标题:C语言中printf函数的问题
取消只看楼主
hiter727
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-8-19
结帖率:0
已结贴  问题点数:20 回复次数:2 
C语言中printf函数的问题
为什么下面程序运行结果与源代码一模一样?
#include
main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}

“printf(a,34,a,34)”这一句我没有想明白,百科上说“printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)”,但这里没有“格式化字符串”,我也不懂参量表是什么东东。

我现在的想法是由于字符串本身就是地址,printf(a,34,a,34)中的a就是"main(){char*a=%c%s%c;printf(a,34,a,34);}"的地址,但我改成printf(a)后,打印会有乱码。另外printf中的34起到了什么作用?

小弟刚刚学习C语言,还请各位指教,先谢谢了!
搜索更多相关主题的帖子: 源代码 C语言 字符串 
2016-08-19 19:42
hiter727
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-8-19
得分:0 
回复 2楼 吹水佬
豁然开朗啊!谢谢老师 我忘了34是ascii码来解释%c
另外问下,如果我就想输出字符串“%s”或“%c”,要怎么办呢?
2016-08-19 21:34
hiter727
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-8-19
得分:0 
回复 5楼 单传利
谢谢:)
2016-08-20 11:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468036-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.633330 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved