目录
[Debug 和 Release 的区别](#Debug 和 Release 的区别)
[F10 --- 逐过程调试 & F11 --- 逐语句调试](#F10 --- 逐过程调试 & F11 --- 逐语句调试)
[F9 --- 新建/切换断点 & F5 --- 开始调试](#F9 --- 新建/切换断点 & F5 --- 开始调试)
[shift + F5 & ctrl + F5](#shift + F5 & ctrl + F5)
Debug 和 Release 的区别
Debug:通常为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序
Release:为发布版本,它进行了各种优化,使得程序载代码大小和运行速度上都是最优的,以便于用户很好的使用

F10 --- 逐过程调试 & F11 --- 逐语句调试
main函数 内部的条件语句或者判断语句,使用 F10 或者 F11 都没有区别
只有当 main函数 中有函数调用 时,F10 和 F11 才会有区别
F10遇函数调用时:

当调试箭头指向函数调用时按下F10,会直接走过函数,并完成函数中的代码
F11遇函数调用时:

当调试箭头指向函数调用时按下F11,会进入函数内部,能观察到函数内部的细节
F9 --- 新建/切换断点 & F5 --- 开始调试
F5 和 F9 通常是配合使用,先使用 F9 打断点,再使用 F5 调试
直接打断点:

这是一个打印二维数组的每一位的代码,使用 F9 将断点打到 printf函数 的地方,那么按下 F5 时调试箭头就会直接指向断点处,且断点处以上的代码已经执行完毕
打断点时设置参数:

打上断点后 -> 右击鼠标 -> 点击条件

断点设置为 i == 2 ,此时 F5 运行时,会直接运行到当i == 2时的逻辑,且断点前的代码已经运行完毕

shift + F5 & ctrl + F5
shift + F5: 当你在调试程序时,按下 shift + F5 就会终止调试
ctrl + F5:开始执行,不调试,直接执行完代码,且不会调试