免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4372 | 回复: 10
打印 上一主题 下一主题

[C] 来自混乱代码大赛的小C程序,来have fun 一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-14 15:35 |只看该作者 |倒序浏览
这段代码是1887年混乱代码大赛的一个获奖作品。

main(){ printf(&unix["\021%six\012\0"],unix["have"] + "fun" - 0x60);}







猜猜结果,如果你看上去比较困难,加上这些条件:

unix是值为1的整型
[]的优先级比&高
'a'==0x61


另外unix==1这个让我很不解。有没有哪位能给小弟一个解释。

论坛徽章:
0
2 [报告]
发表于 2009-03-14 16:27 |只看该作者
……1887年
至于说那个 unix == 1,实际上是编译器预定义的一个宏。就好像在 Win32 平台上你会发现 WIN32 == 1 或者 _WIN32 == 1 一样。

论坛徽章:
0
3 [报告]
发表于 2009-03-14 16:43 |只看该作者

回复 #2 langue 的帖子

手误,
多谢了
这位兄台回帖也遵循风格,小弟收益了。

论坛徽章:
0
4 [报告]
发表于 2009-03-14 17:10 |只看该作者
奇技淫巧

论坛徽章:
0
5 [报告]
发表于 2009-03-14 17:31 |只看该作者
重新学习了一下指针!

论坛徽章:
0
6 [报告]
发表于 2009-03-14 21:26 |只看该作者
牛!看了我好一会。

论坛徽章:
0
7 [报告]
发表于 2009-03-14 22:29 |只看该作者
unix["have"]=“have”[unix]="have"[1]。
这个怎么没有书上介绍过啊?
一维数组可以这样简单的交换顺序。二维数组怎么写呢?

[ 本帖最后由 mingjwan 于 2009-3-14 23:51 编辑 ]

论坛徽章:
8
双鱼座
日期:2014-07-30 09:28:14辰龙
日期:2014-08-22 14:14:43水瓶座
日期:2014-12-02 15:36:392015年亚洲杯之朝鲜
日期:2015-02-06 09:28:592015亚冠之全北现代
日期:2015-09-10 14:40:18青铜圣斗士
日期:2015-11-18 09:22:56黄金圣斗士
日期:2015-11-26 09:17:2615-16赛季CBA联赛之新疆
日期:2016-08-15 17:00:22
8 [报告]
发表于 2009-03-15 00:02 |只看该作者
看不懂

论坛徽章:
0
9 [报告]
发表于 2009-03-15 00:37 |只看该作者

回复 #7 mingjwan 的帖子

unix["have"] == 1["have"] == "have"[1] == 'h'

论坛徽章:
0
10 [报告]
发表于 2009-03-15 16:43 |只看该作者
原帖由 皇家救星 于 2009-3-15 00:37 发表
unix["have"] == 1["have"] == "have"[1] == 'h'



"have"[1] == 'a'  才是, 'h'是 "have"[0]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP