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

a++和++a的值为什么不相同呢?

无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1。

无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

printf(x=%d\n,x++);         输出值为100

printf(x=%d\n,++x);         输出值为102

难道不矛盾吗?

正在回答

6 回答

#include <stdio.h>
int main()
{
    int x = 100;
    printf("x=%d\n",x++);
    //这里先取值在加1!
    printf("x=%d\n",++x);
    // 这里加1后 又加1再取值
    printf("x=%d\n"--x);
    // 减1后取值
    printf("x=%d\n",x--);
    // 取值后减1
    printf("x=%d\n",x+1);
    // 减1后加1
    return 0;
}

0 回复 有任何疑惑可以回复我~

这个题目是告诉你运算方是向由右至左,也一定要有值才能运算 ,如:b++>a等同 b >a ,++b>a等同 b+1+1>a。

0 回复 有任何疑惑可以回复我~
#1

慕码人2016687

听不懂
2019-11-18 回复 有任何疑惑可以回复我~

printf("x=%d\n",x++);这个输出的是增大前的,输出之后让他+1

printf("x=%d\n",++x);这个是先让他+1,再给他输出来

a=0;a++;或++a;都是让a+1,在分号处表示已经执行完了整个过程


3 回复 有任何疑惑可以回复我~

a++是先把a的值输出再去加一

++a是把a的值先加一在输出

你这个例子应该是100 和101

0 回复 有任何疑惑可以回复我~

a++是先赋值给a再在a上加1:++a是先在a上加1再赋值给a

1 回复 有任何疑惑可以回复我~

x++是先赋值再+1;++x是先+1再赋值给x;

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

a++和++a的值为什么不相同呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信