** 归根结底** 还是 内存空间的问题,在单片机上内存空间是寸土寸金的,所以为了更加高效的利用内存,就有: 静态变量的内存在函数执行完后不杀掉(长时间的吃内存),所以静态变量还可以保存最近一次更新的值。 而 普通变量 在函数执行完以后杀掉内存(立即释放空间),当函数再次执行时,又需要从新分配地址(地址改变)重新赋值,所以值还是刚开始赋的值。 内存问题: 程序员开辟的空间都是在 堆中,例如:malloc();函数 系统分配到空间都是在栈中的,所以: int a; int a1[ 10]; 都是