怎么做
  1. 题面里的虚线方框就是要填的空
  2. 点候选项,它会填进当前高亮的那个空
  3. 点已填好的空,可以把选项取回来重选
  4. 全部填满后「提交」才会亮起
卡住了就点右下角的 👩‍🏫 问 AI 老师,她会给提示但不直接给答案。

宏只是原样替换文字

👁️ 19 人浏览 💬 0 人评论 ❤️ 添加收藏

#define S(x) x*x:预处理只做「文字替换」,不先算括号

写的是 S(x+y)

替换成 x+y*x+y 乘号先算!

加括号 ((x+y)*(x+y))

以 # 开头的行叫预处理命令,在编译之前就处理掉:

  • #include <stdio.h>:把 stdio.h 这个文件的内容原样「抄」到这里。
  • #define N 3:不带参数的宏。之后代码里的 N 都被替换成 3。末尾不加分号。
  • #define S(x) x*x:带参数的宏。S(5) 被替换成 5*5。

关键:宏只是原样替换文字,不先算参数、也没有类型。

#include <stdio.h>
#define N 3
#define S(x) x*x

int main(void)
{
    int a = 2;
    printf("%d\n", N * 2);
    printf("%d\n", S(a + 1));
    printf("%d\n", S(N));
    return 0;
}

S(a + 1) 被替换成【0】,所以第 2 行输出【1】;第 3 行输出【2】。

请登录后作答。
去登录
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论