刚学习月余,不对之处请指教。
当创建一个函数后
内存中便储存了代码块,这块区域称为代码区,当运行后函数体开辟栈帧,在代码区中细分为形参区、实参区
函数的第一个参数x是位置参数,第二个参数li是默认参数。当我们第一次调用函数且传入参数3时,结果如图。第二次调用传参结果如图,说明第一次传参后产生的结果是在内存中保留下来,也就是在形参区中保留,当我们第三次传入参数x=3,li=[4,5,6],此时[4,5,6]对于前面二次结果产生的列表为新列表,内存地址也是不一样的,相当于我把列表1放入形参区,变量暂时牵引到列表2,当我们第四次调用时,变量放弃牵引列表2,改为牵引列表1了,因为第四次调用时,没有传入列表,那么即为默认列表,默认列表经过前二次调用后,已经发生改变,所以第四次调用后列表是在默认列表上发生改变,而不是第三次列表。