鱼C论坛

 找回密码
 立即注册
查看: 1613|回复: 2

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

[复制链接]
发表于 2021-6-19 17:07:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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--没搞懂
最佳答案
2021-6-19 20:03:26
本帖最后由 夏三笙 于 2021-6-19 20:14 编辑

++和--在后面的话是作用效果要再下一个语句才实现,也可以说是先再本语句中执行其他操作最后再进行+1操作,比如-i++就是先打印出来-i然后再++,所以i就等于9了,到下一个的时候再先打印,就变成-9了,再--,i就等于8了,所以你最后再打印的话会显示是8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-19 19:04:29 | 显示全部楼层
从右到左   
-(i++ )因为后++  在表达式里就是  -(8)  
i此时已经 9了  ,

- i--  就是   -(9)
但i其实已经是 10 了   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-19 20:03:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 夏三笙 于 2021-6-19 20:14 编辑

++和--在后面的话是作用效果要再下一个语句才实现,也可以说是先再本语句中执行其他操作最后再进行+1操作,比如-i++就是先打印出来-i然后再++,所以i就等于9了,到下一个的时候再先打印,就变成-9了,再--,i就等于8了,所以你最后再打印的话会显示是8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 14:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表