小明同学吖 发表于 2022-6-30 23:51:05

看这个挺秒的但不知道他的意思懂得大佬解释一下呗

#include<stdio.h>
       #define A(x) x;x;x;          //这儿
       int main()
       {
               int n=0;
               A(A(A(printf("%d ",n++))));    这儿
               return 0;
          }

wp231957 发表于 2022-7-1 07:28:20

自己运行一下不就知道了吗

傻眼貓咪 发表于 2022-7-1 09:32:36

本帖最后由 傻眼貓咪 于 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:10:15

本帖最后由 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;
}

番杰 发表于 2022-7-4 16:04:59

#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]
查看完整版本: 看这个挺秒的但不知道他的意思懂得大佬解释一下呗