这个过程是怎么样子的,指导一下。

img

img

a的初始值是3,d的初始值是1
j进入fun方法
d+=p++ 可以理解为d=d+p++,因为p++是先取值后+1,所以运算结果是d=5+3,d=8
输出8
执行d+=a++,同理为d=d+a++。a++也是先取值后+1所以运算结果是d=1+3 ,d=4
输出4
所以答案是A、84

  1. 第五行定义了全局变量d为1;
  2. 主函数中定义变量a为3,将a传入fun函数中;
  3. fun函数中定义局部d变量为5后进行d+=p++,这里调用的d是fun本身的局部变量d而不是全局变量d;
  4. 输出局部变量d,此时的局部变量d进行d+=p++为8;
  5. 主函数中执行完fun函数后执行d+=a++,此时的调用的d是全局变量d;
  6. 输出全局变量d,此时的全部变量d进行d+=a++后为4;
  7. 所有输出均不换行,最后输出位84