大一c语言问题如图,为什么等于8,为什么不是10。是优先级的问题?

2025-03-12 20:19:19
推荐回答(2个)
回答1:

s的值是5+3,所以是8。
在{int a=5;s+=a++;}后,s的值是5,括号中的a变为6,结束括号时,a被系统回收,值被丢弃。
下一行的s+=a++;中的a原等于3,s变为8后,a的值变为4.
输出s的值就是8。

回答2:

a=3;[全局变量a=3]
s=0;[a=0]
s+=a++;是s+=a; a++;的合写
a=5;[int a前面大括号中的a=5],注:这个a由于是在大括号中新定义的,不是全局变量a
s+=a++;[s=5,a=6],大括号结束,其中定义的a被舍弃
s+=a++;[s=5+3=8]