1.栈区存储
C语言栈区默认内存使用习惯先使用高地址再使用低地址(具体要看编译器。x64版本或者release模式使用习惯是相反的),数组在内存中存储时随下标的增长,数组的地址由低到高变化。
看案例,vs的x86版本debug模式
改程序会陷入死循环,理由如下:
不同环境不同编辑器情况下两种变量之间空出的空间大小不同。例如x86的debug模式空2位整型空间,vc6.0中间连续,gcc中间空一位。
2.调试快捷键
F10,逐过程一步一步向前执行直到结束(可以是一个语句,也可以是一个函数)。
F9:设置断点,与F5配合使用。
F5:直接执行到断点处截止,每按一下F5都会一直执行到下一个断点直到结束。(断点处代码不执行,断点前的代码全部执行)
F11:逐语句一步一步向前,可以进入函数内部。CTRL+F5:开始执行不调试,直接运行程序。
3.错误类型
1.编译型错误,一般为语法错误,一般看错误信息即可解决,如‘;’没加。
2.链接型错误:没有引用对应的头文件或库,拼写错误。
3.运行时错误:既没有编译错误也没有链接错误,程序可以运行但是结果不对。只能慢慢调试找到问题。