六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 39|回复: 0

一个不用循环输出1到1000的方法

[复制链接]

升级  27.33%

23

主题

23

主题

23

主题

秀才

Rank: 2

积分
91
 楼主| 发表于 2013-1-26 16:21:27 | 显示全部楼层 |阅读模式
#include <stdio.h>#include <stdlib.h>void main(int j) {  printf("%d\n", j);  (main + (exit - main)*(j/1000))(j+1);}

解释:
j因为是个参数,main函数在无参数调用时会被初始化为1,当j从1增长到1000的时候,j/1000会从0变为1,(exit - main)是main函数和exit函数的地址差值,也就是说j到1000之前,(main + (exit - main)*(j/1000))即是main(),到1000的时候就调用exit()了。

这个程序开始运行时候会一直调用main(),递归999次,增长j并打印,然后调用exit()。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表