1.全局变量在程序开始执行时就分配了并且始终占据某存储单元,直到程序结束才释放,没有定义初值,系统会自动给补上初值。2. 而局部变量在栈中。C#严格禁止使用未赋值的变量。你只在栈里通过申明划分了大小,但是这个变量并不会由系统自动初始化,分配默认值。所以区别就显现在这里。总结:局部变量最好在申明时就初始化给个值,后面的使用原则:必须先赋值,再使用。最后,你这个程序没有限制严密,比如天数99天,还应该再写代码考虑周全点。