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

求解答不会啊

#include

main() { int a=0,b=0,c=0; c=(a-=++a),(a+=b,b+=4); printf("%d,%d,%d",a,b,c); } 为啥运行结果是0,4,0.  谁知道运算过程,求解答

正在回答

4 回答

想学习的猪猪给你的正解。

前提是优先级:(百度。优先级C语言,算数运算符,算数表达式优先级)

a++意义是。(变量名)a中的值(自增一)。(自增一)就是(0+1).即 ( 1)  int a=1;

-=为:赋值运算符。第一个运算表达式(a-=++a;) 即(a=a-a).  等号左边是(变量名)所以他就等于(a=1-1)

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

#include<stdio.h>

main() 

    int a=0,b=0,c=0;

    a-=++a;

    printf("%d\n",a);

    

    c=a;

    printf("%d\n",c);

    

    a+=b;

    printf("%d\n",a);

    

    b+=4;

    printf("%d\n",b);

    

    printf("%d,%d,%d",a,b,c);

}


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

因为a-=++a中++符号优先级别比-=高所以在这个式子中的a都为++a所以结果就变成了a=++a- ++a最后变成括号中为0,所以c=0。至于b应该最简单,就是b=b+4所以b=4。

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

c=(a-=++a):看一下算法的优先级“++”先执行,即执行完后a=1;然后再执行“-=”,即a=a-1,所以执行完后a=0;即a=c=0;

a+=b:执行完后a=b=0;

b+=4:执行完后 a=0;b=4;c=0

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926253    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求解答不会啊

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