我把这个p=1定义为全局变量的话,这个函数的功能会改变吗,为什么会改变?我感觉不会改变啊
你可以先假设n为3,p在第一个for循环里时 sum = 0 + 1 * 1 + 1 * 1 * 2 +1 * 1 * 2 * 3结果是一个累积和
而如果p在全局时 sum = 0 + 1 * 1 +( 1 * 1) * 1 * 2 +(( 1 * 1 ) * 1 * 2 ) * 1 * 2 * 3。结果差异是很大的
p是全局变量还是局部变量是无关紧要的
p=1是赋值,不是定义
你循环里不给p初始化成1,它不越乘越大变不回来了吗
只听说把p定义为全局变量的,没听说把p=1定义为全局变量。你不会是以句子为单位理解的吧?变量的声明与赋值,函数的声明与定义。p声明为全局变量不会影响功能,但赋值语句不能随意更换位置。