这个代码是调试中经常出错的代码,也是nice校招时的一道经典题目
这里主要的问题是数组越界
但是编译器不会给你报错
首先明白原理,1栈区内存的使用习惯是先使用高地址的空间,再使用低地址的空间
2数组在内存中是连续的一片空间且是从低地址到高地址的
当数组越界时可能和其他变量是一个地址,改变数组越界那个元素的同时将其他元素也改了
可能就会发生死循环
调试是一名程序员的必修课 ,学会调试对于程序员来说十分重要
debug是程序员的调试版本,release是程序员的发布版本
assert函数是一个断言函数 使用时包含头文件<assert.h>当函数操作符()里的内容为假时,运行程序时会报错
F9是在程序中产生断点
f5是运行到断点处
f10是一步一步调试
f11是进入函数进行调试
注意,监视 内存 寄存器等工具必须在调试环境下才能在调试-窗口-中找到
自动窗口 是自动将调试过程中的变量去监视 自动去监视,有点自作主张的感觉,还是自己监视比较方便
局部变量也是观察上下文的
我们用的最多的还是监视 ,监视还是可以手动输入我们想观察的监视窗口是我们用的最多的
堆栈很好的反馈了谁调用的谁很好的显示了函数调用的逻辑
十六进制中两个数为一个字节
二进制中八个数为一个字节
两个汉字为一个字节