| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 291 人关注过本帖
标题:求 大神帮我解析下这个语句
只看楼主 加入收藏
C小小小小白
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-15
结帖率:0
  已结贴   问题点数:20  回复次数:4   
求 大神帮我解析下这个语句
# include <stdio.h>

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

/*
运行结果:
-------------------
-8
-9
--------------------

大神们,这个值是怎么算的呢

*/

[此贴子已经被作者于2018-4-16 00:13编辑过]

2018-04-15 23:59
C小小小小白
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-15
  得分:0 
大神在哪呢
2018-04-16 00:02
九转星河
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:长长久久
等 级:版主
威 望:50
帖 子:4972
专家分:13940
注 册:2016-10-22
  得分:7 
i--是对i自身进行作用而不是-i,只是和负号结合得了个负数,第一个根据优先级输出-i也就是-8,加括号就是-(i++)那就容易理解了~然后i自减1 ,i自减1后第二个再和负号结合输出-9,还可以-(--i)这样就是看优先级结合~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-16 00:47
yuandefeng
Rank: 4
等 级:业余侠客
威 望:3
帖 子:51
专家分:216
注 册:2017-11-28
  得分:7 
int i = 8;  
printf("%d\n", -i++);/*i ++ 表示先执行这条语句,再进行i的自加,也就是说先执行打印程序printf,输出i目前的值:8,再进行i自加,i的值变成了9.(如果是++i,就是先执行i自加,再执行整条语句。-表示负号。)*/
printf("%d\n",-i--);/*和上面的类似,先执行打印程序printf,此时的i是上一步程序结束时的值:9,前面有个负号。之后再进行i自减。*/
/*这个程序结束后,i的值又变成了8.*/
2018-04-16 20:00
a1277912495
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2018-4-16
  得分:7 
i++先用自身值8,然后语句结束i变成9,i--先用自身值9输出(如果是--i则先减为8再输出)
2018-04-16 20:25







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024530 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved