免费注册 查看新帖 |

Chinaunix

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

你没见过的helloworld写法! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-22 14:40 |只看该作者 |倒序浏览
呵呵,我这不是骗人啊。

就是想请高手出马,大家一起来研究下C语言的高级语法

抛砖引玉:

  1. #include <stdio.h>
  2. int main()
  3. {
  4.         static int a = 0;
  5.         char c[] = "hello world!";
  6.         a[c]?printf("%c",a++[c]),main():exit(0);     //数组访问的变形
  7.         return 0;
  8. }
复制代码



大家有更好的,都传上来一起分享下呀


呵呵,下面是一些网上搜集到的混乱编程比赛的代码,仅供娱乐:

  1. hello1.c

  2.     #define _________ }
  3.     #define ________ putchar
  4.     #define _______ main
  5.     #define _(a) ________(a);
  6.     #define ______ _______(){
  7.     #define __ ______ _(0x48)_(0x65)_(0x6C)_(0x6C)
  8.     #define ___ _(0x6F)_(0x2C)_(0x20)_(0x77)_(0x6F)
  9.     #define ____ _(0x72)_(0x6C)_(0x64)_(0x21)
  10.     #define _____ __ ___ ____ _________
  11.     #include
  12.     _____
  13. hello2.c

  14.     #include
  15.     main(){
  16.       int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D;
  17.       *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03;
  18.       *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;
  19.       *(z++)=y[x++]-0x08;*(z++)=y[x++]+0x03;*(z++)=y[x++]-0x06;
  20.       *(z++)=y[x++]-0x08;*(z++)=y[x++]-0x43;*(z++)=y[x]-0x21;
  21.       x=*(--z);while(y[x]!=NULL)putchar(y[x++]);
  22.     }
  23. hello3.c

  24.     #include
  25.     #define __(a) goto a;
  26.     #define ___(a) putchar(a);
  27.     #define _(a,b) ___(a) __(b);
  28.     main()
  29.     { _:__(t)a:_('r',g)b:_('$',p)
  30.       c:_('l',f)d:_(' ',s)e:_('a',s)
  31.       f:_('o',q)g:_('l',h)h:_('d',n)
  32.       i:_('e',w)j:_('e',x)k:_('\n',z)
  33.       l:_('H',l)m:_('X',i)n:_('!',k)
  34.       o:_('z',q)p:_('q',b)q:_(',',d)
  35.       r:_('i',l)s:_('w',v)t:_('H',j)
  36.       u:_('a',a)v:_('o',a)w:_(')',k)
  37.       x:_('l',c)y:_('\t',g)z:___(0x0)}
  38. hello4.c

  39.     int n[]={0x48,
  40.     0x65,0x6C,0x6C,
  41.     0x6F,0x2C,0x20,
  42.     0x77,0x6F,0x72,
  43.     0x6C,0x64,0x21,
  44.     0x0A,0x00},*m=n;
  45.     main(n){putchar
  46.     (*m)!='\0'?main
  47.     (m++):exit(n++);}
  48. hello5.c

  49.     main(){int i,n[]={(((1<<1)<<(1<<1)<<(1<<
  50.     1)<<(1<<(1>>1)))+((1<<1)<<(1<<1))), (((1
  51.     <<1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<<(
  52.     1<<1)<<(1<<1))+((1<<1)<<(1<<(1>>1)))+ (1
  53.     <<(1>>1))),(((1<<1)<<(1<<1)<<(1<<1)<< (1
  54.     <<1))-((1<<1)<<(1<<1)<<(1<<(1>>1)))- ((1
  55.     <<1)<<(1<<(1>>1)))),(((1<<1)<<(1<<1)<<(1
  56.     <<1)<<(1<<1))-((1<<1)<<(1<<1)<<(1<<(1>>1
  57.     )))-((1<<1)<<(1<<(1>>1)))),(((1<<1)<< (1
  58.     <<1)<<(1<<1)<<(1<<1))-((1<<1)<<(1<<1)<<(
  59.     1<<(1>>1)))-(1<<(1>>1))),(((1<<1)<<(1<<1
  60.     )<<(1<<1))+((1<<1)<<(1<<1)<<(1<<(1>>1)))
  61.     -((1<<1)<<(1<<(1>>1)))),((1<<1)<< (1<<1)
  62.     <<(1<<1)),(((1<<1)<<(1<<1)<<(1<<1)<<(1<<
  63.     1))-((1<<1)<<(1<<1))-(1<<(1>>1))),(((1<<
  64.     1)<<(1<<1)<<(1<<1)<<(1<<1))-((1<<1)<< (1
  65.     <<1)<<(1<<(1>>1)))-(1<<(1>>1))), (((1<<1
  66.     )<<(1<<1)<<(1<<1)<<(1<<1))- ((1<<1)<< (1
  67.     <<1)<<(1<<(1>>1)))+(1<<1)), (((1<<1)<< (
  68.     1<<1)<<(1<<1)<< (1<<1))-((1<<1)<< (1<<1)
  69.     <<(1<<(1>>1)))-((1<<1) <<(1<< (1>>1)))),
  70.     (((1<<1)<< (1<<1)<<(1<<1)<< (1<<1))- ((1
  71.     <<1)<<(1<<1)<<(1<<1))+((1<<1)<< (1<<(1>>
  72.     1)))), (((1<<1)<<(1<<1) <<(1<<1))+(1<<(1
  73.     >>1))),(((1<<1)<<(1<<1))+((1<<1)<< (1<<(
  74.     1>>1))) + (1<< (1>>1)))}; for(i=(1>>1);i
  75.     <(((1<<1) <<(1<<1))+((1 <<1)<< (1<<(1>>1
  76.     ))) + (1<<1)); i++) printf("%c",n[i]); }
  77. hello6.cpp

  78. 下面的程序只能由C++的编译器编译(比如:g++)

  79.     #include  
  80.     #define _(_) putchar(_);
  81.     int main(void){int i = 0;_(
  82.     ++++++++++++++++++++++++++++
  83.     ++++++++++++++++++++++++++++
  84.     ++++++++++++++++++++++++++++
  85.     ++++++++++++++++++++++++++++
  86.     ++++++++++++++++++++++++++++
  87.     ++++i)_(++++++++++++++++++++
  88.     ++++++++++++++++++++++++++++
  89.     ++++++++++i)_(++++++++++++++
  90.     i)_(--++i)_(++++++i)_(------
  91.     ----------------------------
  92.     ----------------------------
  93.     ----------------------------
  94.     ----------------------------
  95.     ----------------i)_(--------
  96.     ----------------i)_(++++++++
  97.     ++++++++++++++++++++++++++++
  98.     ++++++++++++++++++++++++++++
  99.     ++++++++++++++++++++++++++++
  100.     ++++++++++++++++++++++++++++
  101.     ++++++++++++++++++++++++++++
  102.     ++++++++++++++++++++++++++i)
  103.     _(----------------i)_(++++++
  104.     i)_(------------i)_(--------
  105.     --------i)_(----------------
  106.     ----------------------------
  107.     ----------------------------
  108.     ----------------------------
  109.     ----------------------------
  110.     ------i)_(------------------
  111.     ----------------------------
  112.     i)return i;}

复制代码


仅供娱乐,不要拍砖!

[ 本帖最后由 Logic0 于 2009-7-22 16:14 编辑 ]

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
2 [报告]
发表于 2009-07-22 14:46 |只看该作者
a[c] = c[a] = *(a + c)
不过自己调用 main 函数到第一次页到过 学习了

论坛徽章:
0
3 [报告]
发表于 2009-07-22 15:10 |只看该作者
不明白 a[c] 是什么?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2009-07-22 15:12 |只看该作者
原帖由 qfmeal 于 2009-7-22 15:10 发表
不明白 a[c] 是什么?

和 c[a] 是一回事。

论坛徽章:
0
5 [报告]
发表于 2009-07-22 15:54 |只看该作者
用main递归,呵呵。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2009-07-22 16:02 |只看该作者
原帖由 cugb_cat 于 2009-7-22 15:54 发表
用main递归,呵呵。

main 也是个普通函数,它不普通的地方就是在一些 C 的 runtime environment 中,它被作为默认入口了而已。

论坛徽章:
0
7 [报告]
发表于 2009-07-22 16:23 |只看该作者
我的c比较烂,还是看不明白。

static int a = 0;                     //定义了一个int型的静态变量
char c[] = "hello world!";      //定义了一个字符数组

c[] 我知道
a不是数组,不是指针,为什么也可以写成a[],为什么a[c] = c[a]  ?

论坛徽章:
0
8 [报告]
发表于 2009-07-22 17:05 |只看该作者
#include  
    #define _(_) putchar(_);
    int main(void){int i = 0;_(
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++i)_(++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++i)_(++++++++++++++
    i)_(--++i)_(++++++i)_(------
    ----------------------------
    ----------------------------
    ----------------------------
    ----------------------------
    ----------------i)_(--------
    ----------------i)_(++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++++
    ++++++++++++++++++++++++++i)
    _(----------------i)_(++++++
    i)_(------------i)_(--------
    --------i)_(----------------
    ----------------------------
    ----------------------------
    ----------------------------
    ----------------------------
    ------i)_(------------------
    ----------------------------
    i)return i;}


这个的结果是Hello, world!

论坛徽章:
0
9 [报告]
发表于 2009-07-22 18:08 |只看该作者

回复 #7 qfmeal 的帖子

其实:arr   <==>  *(arr + i)  <==>  *( i + arr)  <==>  i[arr]
所以  arr 和 i[arr]  这两种写法是等价的。
自己写个小程序测试一下就知道了。

论坛徽章:
0
10 [报告]
发表于 2009-07-22 18:59 |只看该作者
main() 递归,static是关键
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP