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

哪位大神能解答这个问题困扰我很久了。

哪位大神能解答这个问题困扰我很久了。

C
不可描述R 2016-08-14 11:07:45
#Include<stdio.h> int main() {     int a=100;     printf("%d\n",a++);     printf("%d\n",++a)     printf("%d\n",--a);     printf("%d\n",a--);     printf("%d\n",a+1);     printf("%d\n",a);     return 0; } 运行结果: 100 102 101 101 101 100 为啥运行结果是这样的。 我自己算出的结果是这样的: 100     a=101 102     a=102 101     a=101 101     a=100 101     a=101 101     a=101
查看完整描述

3 回答

已采纳
?
Yexiaomo

TA贡献152条经验 获得超157个赞

先说一下 a++  和 ++a的区别
虽然结果都 a 的值加 1
但是 a++ 却是 先进行 其他操作
     ++a 却是 先进行加 1, 再进行其它操作,

直接看代码吧:

int main()
{
    int a=100;             // 此时 a = 100;
    printf("%d\n",a++);    // 先 输出 a 值(也就是说,此时 还是 100), 输出之后, 再自加, a = 101
    printf("%d\n",++a);    // 先 自加 1, a = 102 再输出 a 值 (a=102)
    printf("%d\n",--a);    // 先 自减 1, a = 101 再输出 a 值 (a=101)
    printf("%d\n",a--);    // 先 输出 a 值(此时 a=101), 输出之后, 再自减 1, a = 100
    printf("%d\n",a+1);    // 输出 (a+1)=101   a 的值不变(a=100)
    printf("%d\n",a);      // 输出 a 值, (a=100)
    return 0;
}

希望你看后 可以理解 a++ 和 ++a的区别 ,如果还有不懂的, 可以继续问

查看完整回答
9 反对 回复 2016-08-14
?
繁华如梦倾城殇

TA贡献23条经验 获得超6个赞

倒数第二个既然你算出a+1的值是101了,那a=100你该明白,而执行完这一步之后并没有改变a的值所以a还是100

查看完整回答
1 反对 回复 2016-08-14
?
丶包菜

TA贡献158条经验 获得超233个赞

你这里错的主要是第一个和第四个,

a++

a--

都是先赋值再运算

例如:

a   100

a++  100

//这时候上面运算完了

a-- 101

//等它运算完 才变为100


查看完整回答
1 反对 回复 2016-08-14
  • 3 回答
  • 0 关注
  • 1406 浏览

添加回答

举报

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