你要注意a变量有两个,一是全局变量a=2;二是{}中的局部变量a=5
全局变量a初始为2;s初始为0
在{int a=5;s+=f(&a);}中用int声明局部变量a=5. f()函数传递的是局部变量a的地址
在f()函数中return (*a)++;是先返回a原本的值加到s中,再对局部变量a加1.
这时s是0+5=5,局部变量a是5+1=6,全局变量a还是2.
之后出了{}, {}中声明的局部变量被销毁.
下面 S+=f(&a) 中f()函数传递的是全局变量a的地址,
全局变量a是2.在f()函数中是return (*a)++;还是先返回a原本的值加到s中,再对全局变量a加1.
最后s是5+2=7,全局变量a是2+1=3
输出 7 3
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!