小菜鸟yy 发表于 2021-3-11 20:27:31

救救孩子!!!

各位大佬,为什么下面这个算出来是18,22,8,8呢?

#include <stdio.h>

int main()
{
        int i = 5, j = 5, p, q;
        p = (i++)+(i++)+(i++);
        q = (++j)+(++j)+(++j);
        printf("%d, %d, %d, %d", p, q, i, j);
}

wp231957 发表于 2021-3-12 18:05:23

救不了了,但凡研究此类问题的孩子都没得救了

Daniel_Zhang 发表于 2021-3-13 22:12:01

首先,是 18 21 8 8

不是 18 22 8 8

i++ 是 运行结束后自增

++j 是运行之前就自增

所以 p = 5+6+7=18

q=6+7+8=21

小菜鸟yy 发表于 2021-3-15 20:13:59

Daniel_Zhang 发表于 2021-3-13 22:12
首先,是 18 21 8 8

不是 18 22 8 8


谢谢啦啦啦啦啦!
页: [1]
查看完整版本: 救救孩子!!!