这个结果为什么是1,不是2呢?
fun(a)这里的a是作为全局变量,第一行的a,为1。
函数内,修改的是作为参数的a,而不是全局变量,虽然a被修改为2,但是无法作用到实参上。
将def fun(a):修改为 def fun():
fun(a)修改为fun(),则结果是2
函数修改的是形参的值,不会影响到实参。
a=1//全局变量
def fun(a) : //a作为函数的入参,可以理解为局部变量,作用域只在函数体内。
a=2
fun(a) //只是将全局变量a的值传入,fun中对a值的任何修改不回影响到a.除非这里传的是全局变量a的地址指针。
printf(a)//输出全局变量a的值,这个值未被改过, 仍为1,
了解下作用域 其实你只是在函数内定义了个同名变量