当你声明一个局部变量,我喜欢这样:来自非变量变量的值来自哪里?
int i;
而且你使用这个变量,你会得到不确定的行为,因为我还没有初始化。但我拥有一个“垃圾”价值,这个价值从何而来?它来自内存中的随机位置吗?
当你声明一个局部变量,我喜欢这样:来自非变量变量的值来自哪里?
int i;
而且你使用这个变量,你会得到不确定的行为,因为我还没有初始化。但我拥有一个“垃圾”价值,这个价值从何而来?它来自内存中的随机位置吗?
你不知道,你不能说。未定义的行为意味着任何事情都可能发生。
这就是说,在大多数实施方式中实践和大部分时间int i;
会预留在堆栈上sizeof(int)
字节(其通常是某处在主存储器中),所以i
值将是任何恰好是在此时叠加。
但是不要依赖它,并且记住这并非总是如此。
它的任何内存在&我以前。
变量通常在内存中有一个位置,在这种情况下,它的值将是该内存位置发生的任何事情。 – juanchopanza