我们先来看一段代码:
#include<stdio.h> int BinSearch(int *arr,int len,int key) { int low=0; int high=len-1; int mid; while(low<=high) { mid=(low+high)>>1; if(arr[mid]==key) { return mid; } else if(arr[mid]<key) { low=mid; } else { high=mid; } } return -1; } int main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; for(int i=0;i<13;i++) { printf("%d\n",Binsearch(arr,sizeof(arr)/sizeof(arr[0]),i)); } return 0; }
我们先来看一下它的运行结果:
按照程序设计的算法,如果出现如下的结果,应该才是对的:
-1 0 1 2 3 4 5 6 7 8 -1 -1
但是出现了未知的错误,而且编译器并没有编译出来,所以在这时候我们就需要使用编译器自带的调试来检查里面存在的错误,首先我们来看一下我们要用到的按钮:
上面的按钮的名称依次是:
依次是:生成解决方案,监视,注释,取消注释,调试,开始执行(不调试),逐过程,跳出
在执行调试之前我们需要先设置一个断点,设置断点的目的就是让程序在全速运行的时候,到这里的时候停下来,以便于我们可以使用监视器对每一步的只进行监视,这样才可以看出来哪一步在执行的时候出了错,这样我们才可以“对症下药”。设置断点非常简单,只需要在函数最边上点一个红色的点就可以了: