forever.cola 发表于 2021-6-19 17:07:37

想问一道C语言的基础问题,谢谢大佬解答

#include <stdio.h>

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

为什么最后两行编译出来的结果是-8和-9,-i++和-i--没搞懂

万千只cnm 发表于 2021-6-19 19:04:29

从右到左   
-(i++ )因为后++在表达式里就是-(8)
i此时已经 9了,

- i--就是   -(9)
但i其实已经是 10 了   

夏三笙 发表于 2021-6-19 20:03:26

本帖最后由 夏三笙 于 2021-6-19 20:14 编辑

++和--在后面的话是作用效果要再下一个语句才实现,也可以说是先再本语句中执行其他操作最后再进行+1操作,比如-i++就是先打印出来-i然后再++,所以i就等于9了,到下一个的时候再先打印,就变成-9了,再--,i就等于8了,所以你最后再打印的话会显示是8
页: [1]
查看完整版本: 想问一道C语言的基础问题,谢谢大佬解答