可以详细解释下这个代码的运行过程嘛

img


答案是B,b+=2怎么理解的,为什么每次输入输出后编程结果会多2,a的值是怎么变化的呢,又是怎么被带入到a+b+c中去的

b+=2,不就等价于b=b+2吗
b是static修饰的,静态变量,所以它只会初始化一次,初始值是3,之后会保持之前的值
而c不是静态的,所以每次都是从0开始,那么int c=0;c+=1;其实就等价于int c=1;
a+b+c的值是函数的返回值啊,return回去的
printf里直接调用sum函数,那么返回值给了%d打印出来,其实就是在打印a+b+c啊
a是从外部传入的,它是2,不变,c在函数里面定义的,是1,也不变,只有b的值每执行一次+2,所以a+b+c的值也是每次+2

b+=2等价于b=b+2。
变得不是a,a每次都是2,变得是静态变量b,b每循环一次+2。