为什么变量值莫名其妙的变得好像没赋值一样?
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/1290866812-539589902.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/914594313972758099.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/652923364505672323.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/730833052-539787965.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/240258976-1177648515.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/1290866812-539589902.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/914594313972758099.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/652923364505672323.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/730833052-539787965.jpg)
![变量值莫名改变 变量值莫名改变](https://www.codebye.com/wp-content/uploads/2016/07/240258976-1177648515.jpg)
解决方案
40
请学会使用数据断点。参考下面:
#include <time.h> #include <stdlib.h> #include <windows.h> int main() { int a,b[11];//本来是b[10],为判断哪句越界,故意声明为b[11] srand((unsigned int)time(NULL));//按两次F11,等黄色右箭头指向本行时,调试、新建断点、新建数据断点,地址:&b[10],字节计数:4,确定。 while (1) {//按F5,会停在下面某句,此时a的值为10,b[10]已经被修改为对应0..4之一。 b[(a=rand()%11)]=0; Sleep(100); b[(a=rand()%11)]=1; Sleep(100); b[(a=rand()%11)]=2; Sleep(100); b[(a=rand()%11)]=3; Sleep(100); b[(a=rand()%11)]=4; Sleep(100); } return 0; }