使用VC++调试程序课件.ppt
《使用VC++调试程序课件.ppt》由会员分享,可在线阅读,更多相关《使用VC++调试程序课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、使用使用使用使用VC+VC+调试程序调试程序调试程序调试程序调试程序调试程序调试程序调试程序n调试运行n单步跟踪n单步跳进跟踪n观察自动变量n观察其他变量n停止调试n1:打开jiecheng项目(双击jiecheng.dsw文件)n2:build该项目,确定程序能够运行n3:调试运行阶乘程序n4:设置断点n5:再次调试运行程序n6:使用单步执行程序到结束1 1:打开:打开:打开:打开jiechengjiecheng项目项目项目项目2 2:BuildBuild该项目,确定程序能够运行该项目,确定程序能够运行该项目,确定程序能够运行该项目,确定程序能够运行3 3:调试运行阶乘程序:调试运行阶乘程序
2、:调试运行阶乘程序:调试运行阶乘程序Go4 4:设置断点:设置断点:设置断点:设置断点n将鼠标停留在程序的第8行,在第8行的任意地方单击鼠标左键(第8行即“i=i*4;”)n在工具栏上选择 按钮,为第8行设置断点,以便让程序在此处暂停运行5 5:再次调试运行阶乘程序:再次调试运行阶乘程序:再次调试运行阶乘程序:再次调试运行阶乘程序n注意观察,现在调试运行程序会如何?Go5 5:再次调试运行阶乘程序(续):再次调试运行阶乘程序(续):再次调试运行阶乘程序(续):再次调试运行阶乘程序(续)程序暂停之处调试(Debug)工具:控制程序前进步伐查看程序当前状态6 6:使用单步执行到程序结束:使用单步执
3、行到程序结束:使用单步执行到程序结束:使用单步执行到程序结束n设置断点以后,调试运行程序时,程序开始执行,同时运行到断点处暂停下来,如今我们有机会观察程序的运行情况,同时诊断程序目前的状态是否如我们所预期的那样。n不过我们先不着急观察程序的状态,而是来看看如何控制程序的运行,以便在我们需要的时候让程序暂停下来,并且以我们需要的方式走走停停!6 6:使用单步执行到程序结束:使用单步执行到程序结束:使用单步执行到程序结束:使用单步执行到程序结束n程序停下来了,如何让程序从暂停的地方接着向前执行?n方法是使用单步执行手段(Step Over)让程序向前走一步停止调试停止调试并重新启动调试单步执行当前
4、位置熟悉调试工具栏和菜单(只在调试运行时出现)熟悉调试工具栏和菜单(只在调试运行时出现)熟悉调试工具栏和菜单(只在调试运行时出现)熟悉调试工具栏和菜单(只在调试运行时出现)对比调试运行时出现的调试菜单“Debug”和调试工具栏,依照图标查找对应项观察自动变量观察自动变量观察自动变量观察自动变量自动变量观察变量的值及其随程序运行时的变化情况观察变量的值及其随程序运行时的变化情况观察变量的值及其随程序运行时的变化情况观察变量的值及其随程序运行时的变化情况n设置断点,调试运行程序,如今程序暂停在断点处等待n选择Debug菜单,找到最后一项“Quick Watch”并点击输入想要观察的变量变量名变量的
5、值点击Add Watch点击点击点击点击Add watchAdd watch,看到如下画面,看到如下画面,看到如下画面,看到如下画面调试观察每一步骤变量调试观察每一步骤变量调试观察每一步骤变量调试观察每一步骤变量i i的值的值的值的值n点击单步执行按钮或者菜单,程序那么向前单独运行一个步骤n每向前执行一步,就会暂停下来,如此我们就有充足的时间观察所关心的变量名称n观察变量i的值的情况注意在调试过程中注意在调试过程中注意在调试过程中注意在调试过程中n断点不能设置在空白行上面n添加断点和删除断点的方法一样n一个程序中能够设置多个断点n按下F5键可以让程序从当前位置向前执行,直到遇见下一个断点或者程
6、序结束相关相关相关相关C C语言基础知识语言基础知识语言基础知识语言基础知识指针:结构体:指针指针指针指针新建新建新建新建Visual C+Visual C+程序程序程序程序【四四】利用已有的程序编写新程序利用已有的程序编写新程序无无论论是是控控制制台台程程序序,或或者者是是Windows窗窗口口程程序序,Visual C+都都会会要要求求有有对对应应的的项项目目文文件件。而而且且在在大大多多数数情情况况下下,C程程序序的的差差不不多多框框架架基基本本上上一一致致的的,例例如如:都都有有主主函函数数等等等等。因因此此在在编编写写一一个个新新的的程程序序时时,能能够够利利用用往往常常编编写写过的
7、程序,其操作方法有两种。过的程序,其操作方法有两种。(1)程序复用操作)程序复用操作将将已已有有的的程程序序复复用用到到新新程程序序上上的的方方法法很很简简单单,确确实实是是将将程程序序内内容容通通过过“复复制制粘贴粘贴”实现。实现。(2)项目复用操作)项目复用操作打打开开已已有有的的项项目目文文件件,将将原原来来的的文文件件删删除除,利利用用项项目目管管理理增增加加新新程程序序文文件件或资源元素等。或资源元素等。新建新建新建新建Visual C+Visual C+程序程序程序程序【五五】项目管理项目管理无无论论项项目目是是否否建建立立,只只要要开开始始程程序序的的编编译译、链链接接、运运行行
8、或或调调试试过过程程,Visual C+就会按项目管理方式进行控制。就会按项目管理方式进行控制。例例如如:当当使使用用文文件件新新建建方方式式建建立立一一个个源源程程序序文文件件后后,只只要要开开始始编编译译则则Visual C+会自动提示创建项目。会自动提示创建项目。新建新建新建新建Visual C+Visual C+程序程序程序程序地址和指针的概念地址和指针的概念地址和指针的概念地址和指针的概念【一一】指针概述:指针概述:1、“&”:地址运算符:地址运算符2.“*”:指针运算符,取其指向的:指针运算符,取其指向的内容内容:exp:&a:变量变量a的地址:的地址:*p:变量变量p的内容;的内
9、容;注:注:“&”不能施加在常数,常量和表达式上;不能施加在常数,常量和表达式上;【二二】指针变量:指针变量:存放某种变量地址的变量称为指针变量。存放某种变量地址的变量称为指针变量。1035.ab20172018p2010q2012因此,在因此,在C语言中,将地语言中,将地址形象化地称为址形象化地称为指针指针定义一个指针变量定义一个指针变量定义一个指针变量定义一个指针变量指针变量的定义一般形式为:指针变量的定义一般形式为:基类型基类型*指针变量名指针变量名;例如:例如:int i,j,*pi,*pj;float x,y,*p1,*p2;指针变量的赋值:使得指针变量指向变量指针变量的赋值:使得指
10、针变量指向变量指针变量名指针变量名&变量名变量名;如:如:pi=&i;pj=&j;p1=&y;p2=&x;注意:指针变量只能存放指针(地址),且只能是相同类型变量的地址。注意:指针变量只能存放指针(地址),且只能是相同类型变量的地址。例例如如,指指针针变变量量pi、pj,只只能能接接收收int型型、p1,p2只只能能接接收收float型型的的地地址址,否否那么出错。那么出错。结构体结构体指针变量的引用指针变量的引用指针变量的引用指针变量的引用在程序中,能够用:*指针变量名代替其所指变量。如假设如假设:int i,*p;p=&i;则则 i=5;与与*p=5;的作用相同,即可用的作用相同,即可用*
11、p代替代替i,这里这里*号称为指号称为指针运算符(或称为间接访问运算符)针运算符(或称为间接访问运算符)指针变量作为函数参数指针变量作为函数参数指针变量作为函数参数指针变量作为函数参数实参:变量地址或已赋值的指针变量,形参:指针变量实参:变量地址或已赋值的指针变量,形参:指针变量功能:地址传送方式,会将改变后的值带回。功能:地址传送方式,会将改变后的值带回。例例10.3通过函数调用实现例通过函数调用实现例10.2的功能。的功能。swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;main()int a,b,*pointer1,*poi
12、nter2;scanf(%d%d,&a,&b);pointer1=&a;pointer2=&b;if(ab)swap(&a,&b);printf(n%d,%d,a,b);数组与指针数组与指针数组与指针数组与指针1.概念概念数组的指针数组的指针数组在内存中的起始地址,用数数组在内存中的起始地址,用数组名表示组名表示2.指向数组的指针变量指向数组的指针变量-赋于数组名的指针变量赋于数组名的指针变量例如,例如,int a 10,*p=a(或或*p=&a0);或者:或者:int a 10,*p;pa;3.通过指针引用数组元素通过指针引用数组元素假如有假如有“int a 10,*p=a;”,那么:,那么
13、:(1)p+i=a+i=&ai。(2)*(p+i)=*(a+i)=ai。(3)pi*(p+i)ai。注注意意:p+1指指向向数数组组的的下下一一个个元元素素,而而不不是是简简单单地地使使指指针针变变量量p的的值值+1。事事实实上上际际变变化化为为p+1*size(size为一个元素占用的字节数)。为一个元素占用的字节数)。例例如如,假假设设指指针针变变量量p的的当当前前值值为为3000,则则p+1为为3000+1*2=3002,而不是,而不是3001用数组名作为函数参数用数组名作为函数参数形参:数组或指针变量形参:数组或指针变量实参:数组名或指向数组的指针变量实参:数组名或指向数组的指针变量传
14、递方式:地址传送方式传递方式:地址传送方式作用:假设函数中对数组作了修改,那么作用:假设函数中对数组作了修改,那么调用函数中的数组也会作同样的修改调用函数中的数组也会作同样的修改指向函数的指针指向函数的指针1.函数指针的概念函数指针的概念一个函数在编译时,被分配了一个入口地址,那一个函数在编译时,被分配了一个入口地址,那个地址就称为该函数的指针。个地址就称为该函数的指针。能够用一个指针变量指向一个函数,然后通过该能够用一个指针变量指向一个函数,然后通过该指针变量调用此函数。指针变量调用此函数。2.指向函数的指针变量指向函数的指针变量(1)定义格式)定义格式 函数类型函数类型 (*指针变量指针变
15、量)();注意:注意:“*指针变量指针变量”外的括号不能缺,否那外的括号不能缺,否那么成了返回指针值的函数。么成了返回指针值的函数。例如,例如,int (*fp)();/*fp为指向为指向int函数的指针函数的指针变量变量*/(2)赋值)赋值 函数名代表该函数的入口地址。因此,可用函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。函数名给指向函数的指针变量赋值。指向函数的指针变量指向函数的指针变量&函数名函数名;注注意:函数名后不能带括号和参数;函数名前意:函数名后不能带括号和参数;函数名前的的“&”符号是可选的。符号是可选的。(3)调用格式调用格式 (*函数指针变量函数指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 VC 调试 程序 课件
限制150内