
第一次func()因为x=3,c+=x:
所以第一次返回的是3.
第二次func,因为有局部变量
x+=10,所以第二次返回13
第一个k=func(),
在这里调用了func函数,
func函数体里面执行了
c+=x;x+=10
意思分别是
将x的值加上c的值赋值再赋值给c,
将x的值加上10的值赋值再赋值给x,
此时c的值是3,x的值是10.
func函数返回了c的值
那么k的值就等于3。
打印k的值,显示3
第二个k=func(),
在这里调用了func函数,
func函数体里面执行了
c+=x;x+=10
意思分别是
将x的值加上c的值赋值再赋值给c,
将x的值加上10的值赋值再赋值给x,
此时c的值是13,x的值是20.
func函数返回了c的值
那么k的值就等于13。
打印k的值,显示13
首先x==3 进入func()函数中 c=c+x c==3 x=x+10 x==13 此时的c被返回了回来 所以k此时赋值为3 输出3。
接着此时的x==13进入func()函数中c=c+xc==13 x=x+10 x==23此时的c也被返回了回来所以k此时赋值为13 输出13。
其实前面的func()函数的x还是原来的初始值,但后面在进入到func()函数时 x已经被前面的func()函数给改变了 所以一个输出的是3,一个输出的是13。