guyihui 发表于 2022-1-5 20:51:34

C语言40讲课后作业

第五道题小甲鱼的解析错误了吧,SQUARE(i++) 展开了,变成 ((i++) * (i++)),之后先进行第一个i++运算,之后再进行第二个,所以最后的结果应该是
2的平方是2
4的平方是12
6的平方是30
我的Linux得出的结果是这样的,和小甲鱼的不一样,不知道大家的是怎样的,,,{:10_307:}

傻眼貓咪 发表于 2022-1-6 09:30:16

我用 Windows:#include <stdio.h>
#define A(n) n*n

int B(int n){
        return n*n;
}

int main()
{
        int a = 3, b = 3;
        printf("%d\n", A(a++));
        printf("%d", B(b++));
        return 0;
}结果:12
9

guyihui 发表于 2022-1-6 13:22:01

傻眼貓咪 发表于 2022-1-6 09:30
我用 Windows:结果:

这不跟我结果一样嘛
页: [1]
查看完整版本: C语言40讲课后作业