关于IOCCC的一道题,兴趣看看

max_min_ 2013-09-30 08:34:02

#include <stdio.h>

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



结果可以运行看看!知道原因的大牛给我们新手解释下!

...全文
227 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2013-09-30
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
A[B] 等价于 *(A+B) 等价于 *(B+A) 等价于 B[A]
赵老师正解
赵4老师 2013-09-30
  • 打赏
  • 举报
回复
A[B] 等价于 *(A+B) 等价于 *(B+A) 等价于 B[A]
赵4老师 2013-09-30
  • 打赏
  • 举报
回复
对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
AnYidan 2013-09-30
  • 打赏
  • 举报
回复
除了“加数”可以任意交换外,还有什么?
  • 打赏
  • 举报
回复
引用 2 楼 qq523176585 的回复:
VC下编译通不过哈。。。。 C专家编程里面有讲这个。。。。
VC上面需要定义一个宏 #define unix 1 其实和这个是差不多的 "abcde"[1] = 1["abcde"] = 'b';"abcde"是一个指向'a'的地址
  • 打赏
  • 举报
回复
VC下编译通不过哈。。。。 C专家编程里面有讲这个。。。。
Carl_CCC 2013-09-30
  • 打赏
  • 举报
回复
http://www.cnblogs.com/me_hades/archive/2011/08/06/2129726.html
这里面解释了。
N_Sev7 2013-09-30
  • 打赏
  • 举报
回复
仅仅限于有印象而已
To_be_sky 2013-09-30
  • 打赏
  • 举报
回复
在VS中编译不过? 是要加#define unix 1 吗? 输出的东西好诡异!

69,371

社区成员

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

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