同一个线程的所有函数共享同一个栈地址空间,上个函数用完这个栈,系统并没有把这个栈清0,下个函数的局部变量压栈用的还是同一个栈地址空间,那么这个局部变量不初始化就用的话,其值是上个函数的遗留值,但因为数据类型不同,那么对遗留值解析不同导致取的值就不确定了——俗称垃圾值。
所以函数中局部变量用之前要初始化。
栈2——局部变量要初始化的原因
于 2022-01-12 10:34:17 首次发布
同一个线程的所有函数共享同一个栈地址空间,上个函数用完这个栈,系统并没有把这个栈清0,下个函数的局部变量压栈用的还是同一个栈地址空间,那么这个局部变量不初始化就用的话,其值是上个函数的遗留值,但因为数据类型不同,那么对遗留值解析不同导致取的值就不确定了——俗称垃圾值。
所以函数中局部变量用之前要初始化。