一.Debug和Release
Debug就是调试bug,编辑Debug版本的可执行程序,其中包含调试信息,可以直接进行调试。(被称为调试版本)
Release用来发给用户,他进行了各种优化,内存更小,运行速度更快,(被称作发布版本)无法调试。
二.常用的调试快捷键
F9:创建和取消断点;
F5:启动调试,用来跳到运行逻辑上的断点处;
CTRL+F5:开始执行,不调试;
F10:逐过程,处理一个过程(一次函数调用,一条语句等),如果路过自定义函数时会直接跳过;
F11:逐语句,每执行一条语句,可以让执行逻辑进入函数内部。
条件断点:满足断电的条件才会触发断点。
栈区上的内存使用习惯:先使用高地址空间,再用低地址的空间。(X86+Debg环境)
在数组传参调试的时候,必须传数组名,否则只显示一个元素,如果是二维数组,后方必须加上行数,否则只显示一行。
三.函数递归 = 递推+回归
若函数递归无限的递归下去,就会造成栈溢出的问题,(Stack Overflow)每一次函数调用都会为此次调用分配内存空间,从栈区分配。
递归实践
//利用递归调用计算n的阶乘
#include <stdio.h>
int mul_n(int n)
{
if (n == 1)
{
return 1;
}
else
{
return n * mul_n(n - 1);
}
}
int main()
{
int input = 0;
scanf("%d", &input);
int ret = mul_n(input);
printf("%d", ret);
return 0;
}