村头张狗蛋 发表于 2021-6-27 11:47:55

想问一下大佬们,为啥第二个printf-i--结果是-9呀

int i=8;
printf("%d\n",-i++);
printf("%d\n",-i--);

不能懒 发表于 2021-6-27 11:53:28

i=8,-i=-8,-i--输出等于-9啊(-8--等于-9),没问题啊

nahongyan1997 发表于 2021-6-27 12:05:19

执行顺序问题,给你打个标记你就懂了
int i=8;
printf("%d\n",-(i++));
printf("%d\n",-(i--));

sunrise085 发表于 2021-6-27 13:29:06

自加和自减是有顺序的,i++先使用i,然后再自加;++i先自加然后再使用新的i
printf("%d\n",-(i++));
这一句执行前,i=8,所以打印出来的是-8,然后i++,执行完这一句后i为9
printf("%d\n",-(i--));
这一句执行前,i=9,所以打印出来的是-9,然后i--,执行完这一句后i为8

村头张狗蛋 发表于 2021-6-28 10:27:59

不能懒 发表于 2021-6-27 11:53
i=8,-i=-8,-i--输出等于-9啊(-8--等于-9),没问题啊

明白了明白了,谢谢啦{:5_109:}

村头张狗蛋 发表于 2021-6-28 10:29:07

sunrise085 发表于 2021-6-27 13:29
自加和自减是有顺序的,i++先使用i,然后再自加;++i先自加然后再使用新的i
printf("%d\n",-(i++));
这一 ...

哦哦哦哦超级明白了,谢谢大佬{:10_279:}

村头张狗蛋 发表于 2021-6-28 10:30:15

nahongyan1997 发表于 2021-6-27 12:05
执行顺序问题,给你打个标记你就懂了

谢谢大佬{:10_254:}
页: [1]
查看完整版本: 想问一下大佬们,为啥第二个printf-i--结果是-9呀