为了账号安全,请及时绑定邮箱和手机立即绑定

能解释一下为什么吗?详细一点

能解释一下为什么吗?详细一点

C
慕粉3526112 2016-06-22 22:11:16
查看完整描述

4 回答

已采纳
?
小雾3378873

TA贡献5条经验 获得超0个赞

#include <studio.h>

int main()

{

    int a=100;                        //a=100

    printf("%d\n",a++);        //先显示输出a的值(100),然后计算a=a+1 =101

    printf("%d\n",++a);        //先计算a=a+1=101+1=102,然后显示输出a的值(102)        

    printf("%d\n",--a);          //先计算a=a-1=102-1=101,然后显示输出a的值(101)

    printf("%d\n",a--);          //先显示输出a的值(101),然后计算a=a-1=101-1=100

    printf("%d\n",a+1);        //显示输出a+1的值(100+1=101),注意,a值不变还是100

    printf("%d\n",a);            //显示输出a的值(100)

    return 0;

}

a++   a--  先用再计算赋值

++a   --a  先计算赋值再用

查看完整回答
反对 回复 2016-06-23
?
慕粉3291149

TA贡献71条经验 获得超52个赞

a++的意思是先调用a然后a在加一(调用的时候a还没有加一)  ++a的意思是a先加一,在调用(调用a的时候a已经加一了)

a--和--a同上

第一个print(a++)    输出100  先输出a(a此时为100),然后a在加一 ,即 a=100+1=101;

第二个print(++a)  输出102  a先加1 即  a=101+1=102;然后输出a(此时a为102)

其他同上


查看完整回答
2 反对 回复 2016-06-23
?
楽兿

TA贡献5条经验 获得超4个赞

我之前也没明白,

我觉得你跟我是一样的情况

就是没有明白其实下一行输出中的a

其实是上一个语句执行完的结果

例如 printf("%d\n",++a);

这里的a不再是初始值100了

而是进行a++之后的101,

所以再执行++a的时候,不是取值100+1

而是a++之后的101+1=102。

这一种情况你弄明白之后,

下面的几条应该就都明白了

查看完整回答
反对 回复 2016-06-24
?
onemoo

TA贡献883条经验 获得超454个赞

自增自减涉及到很多内容,课程中都没有讲明白。

我在老区有一个详细回答,请看这里 http://www.imooc.com/qadetail/83948

查看完整回答
反对 回复 2016-06-23
  • 4 回答
  • 0 关注
  • 1268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信