看这个挺秒的但不知道他的意思懂得大佬解释一下呗
#include<stdio.h>#define A(x) x;x;x; //这儿
int main()
{
int n=0;
A(A(A(printf("%d ",n++)))); 这儿
return 0;
} 自己运行一下不就知道了吗 本帖最后由 傻眼貓咪 于 2022-7-1 09:34 编辑
这种问题如楼上大佬说的,自己试一下就知道了
{:10_269:}
A(x) 就是 x;x;x;
A(printf("%d ",n++)) 就是 printf("%d ",n++); printf("%d ",n++); printf("%d ",n++)
A(A(A(printf("%d ",n++)))); 就是 printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); printf("%d ",n++); ..... 本帖最后由 ExiaGN001 于 2022-7-1 20:12 编辑
把程序里所有A(x)换成x;x;x;
x可以是任意字符串
程序作用是输出0~26
等价于
#include<stdio.h>
#define A(x) x;x;x; //这儿
int main()
{
int n=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
for(int k=0;k<3;k++)printf("%d ",n++);
}
}
return 0;
} #define A(x) x;x;x; 这个是个宏定义,说白了就是把x重复3次,x是一条(或多条)语句:
举个例子:A(i++);就相当于:i++;i++;i++;
所以A(A(A(printf("%d ",n++)))); 就相当于执行了3*3*3条printf("%d ",n++)
页:
[1]