C语言不用循环不用递归打印0-999的小程序,你看懂了吗?
生活随笔
收集整理的這篇文章主要介紹了
C语言不用循环不用递归打印0-999的小程序,你看懂了吗?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<stdio.h>
#define A(x) x;x;x;x;x;x;x;x;x;x;
void main(){
int n = 0;
A(A(A(printf("%d\n",n++))));
}
//程序解釋
?
#define A(x) x;x;x;x;x;x;x;x;x;x;? ?這里有十個分號,然后看下面代碼,A(A(A(printf ("%d ", n++))));從里到外看,從最里層,A(printf ("%d ", n++)) 吧這個A用宏替換,括號里面是宏的參數,所以printf("%d ", n++)就是參數,被替換成 10個語句,就是10個printf("%d ", n++),上面的宏有十個x; 你總共有三層宏,最里層的被替換成了10個printf ("%d ", n++),那么外面再加一層,同一個道理,把這個十個printf看成一個整體,又被替換成10個整體,等于出現了100個printf,再加一層就是 10個100,就是1000了,你的n從0開始每次加1,不就是從0到999,正好1000個數。。。。其實這個就相當于一個三維數組,a[10][10][10],把一個一維數組一直整成了三維數組。。。
?
轉載于:https://www.cnblogs.com/luanch/p/3393593.html
總結
以上是生活随笔為你收集整理的C语言不用循环不用递归打印0-999的小程序,你看懂了吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET简谈接口
- 下一篇: Mac10.9 Mavericks 输入