输出为本身的C程序 关于char *f ??

fengsanshao 2006-02-08 01:39:18
请看这个程序

char*f="char*f=%c%s%c;%cmain(){printf(f,34,f,34,10,10);}%c";
main(){printf(f,34,f,34,10,10);}

其输出结果为本身。。

我想请问一下前面那个定义的char *f 是什么??

谢谢
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengsanshao 2006-02-08
  • 打赏
  • 举报
回复
明白了,非常感谢各位的热心帮助。。
dragonzxh 2006-02-08
  • 打赏
  • 举报
回复
..........
iamcaicainiao 2006-02-08
  • 打赏
  • 举报
回复
发送者:dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~) ( 发送时间:2006-2-8 15:01:11 删除 回复
接受者:iamcaicainiao 重要性:重要性:1 非常不重要重要性:2 不重要重要性:3 一般重要性:4 重要重要性:5 非常重要
内容 Re:char*f="char*f=%c%s%c;%cmain(){printf(f,34,f,34,10,10);}%c";
main(){printf(f,34,f,34,10,10);}

....

hehe,仔细看f中的内容。
其实很简单,把printf中的东西逐个填上就行了。
34是",10是换行符。
f是格式,
%c%s%c;%c填34,f,34,10,
最后一个%c填10.
呵呵。简单吧`
dragonzxh 2006-02-08
  • 打赏
  • 举报
回复
char*f="char*f=%c%s%c;%cmain(){printf(f,34,f,34,10,10);}%c";
main(){printf(f,34,f,34,10,10);}
==================
printf第一个参数是格式,就是char*f中的内容,然后把34,f,34,10,10分别填入参数%c%s%c和最后的%c中。34是",10应该是换行符吧~
ouyh12345 2006-02-08
  • 打赏
  • 举报
回复
主要是printf的问题。
printf好象隐含调用了sprintf?
iamcaicainiao 2006-02-08
  • 打赏
  • 举报
回复
嘿嘿,这个程序有意思。
愣是没看懂,怎么把自己给输出了。
Mr_Yang 2006-02-08
  • 打赏
  • 举报
回复
同意楼上的!
"char*f=%c%s%c;%cmain(){printf(f,34,f,34,10,10);}%c" 这是一个常量字符串。
dragonzxh 2006-02-08
  • 打赏
  • 举报
回复
字符串常量啊。。。。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧