使用VC 60调试程序.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:54 大小:1.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

使用VC 60调试程序.ppt

使用VC60调试程序.ppt

预览

免费试读已结束,剩余 44 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

使用VC++6.0调试程序调试程序1:打开jiecheng项目2:Build该项目,确定程序可以运行3:调试运行阶乘程序4:设置断点5:再次调试运行阶乘程序5:再次调试运行阶乘程序(续)6:使用单步执行到程序结束6:使用单步执行到程序结束熟悉调试工具栏和菜单(只在调试运行时出现)观察自动变量观察变量的值及其随程序运行时的变化情况点击Addwatch,看到如下画面调试观察每一步骤变量i的值注意在调试过程中相关C语言基础知识指针新建VisualC++程序新建VisualC++程序新建VisualC++程序地址和指针的概念二、指针变量:存放某种变量地址的变量称为指针变量。定义一个指针变量结构体指针变量的引用指针变量作为函数参数数组与指针3.通过指针引用数组元素如果有“inta[10],*p=a;”,则:(1)p+i==a+i==&a[i]。(2)*(p+i)==*(a+i)==a[i]。(3)p[i]==*(p+i)==a[i]。注意:p+1指向数组的下一个元素,而不是简单地使指针变量p的值+1。其实际变化为p+1*size(size为一个元素占用的字节数)。例如,假设指针变量p的当前值为3000,则p+1为3000+1*2=3002,而不是3001用数组名作为函数参数形参:数组或指针变量实参:数组名或指向数组的指针变量传递方式:地址传送方式作用:若函数中对数组作了修改,则调用函数中的数组也会作同样的修改指向函数的指针2.指向函数的指针变量(1)定义格式函数类型(*指针变量)();注意:“*指针变量”外的括号不能缺,否则成了返回指针值的函数。例如,int(*fp)();/*fp为指向int函数的指针变量*/(2)赋值函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。指向函数的指针变量=[&]函数名;注意:函数名后不能带括号和参数;函数名前的“&”符号是可选的。(3)调用格式(*函数指针变量)([实参表])3.指向函数的指针变量作函数参数指向函数的指针变量的常用用途之一,就是将函数指针作参数,传递到其它函数。注意:对指向函数的指针变量,诸如p+i、p++/p--等运算是没有意义的。例10.24设有一个函数process,在调用它时,每次实现不同的功能。输入a和b两个数,第一次调用时找出a与b中的大者,第二次找出小者,第三次求和。#include<stdio.h>voidmain(){intmax(int,int);intmin(int,int);intadd(int,int);intprocess(int,int,int(*fun)());inta,b;printf("enteraandb:");scanf("%d%d",&a,&b);printf("\nmax=");process(a,b,max);printf("\nmin=");process(a,b,min);printf("\nsum=");process(a,b,add);}max(intx,inty){returnx>y?x:y;}min(intx,inty){returnx>y?y:x;}add(intx,inty){returnx+y;}process(intx,inty,int(*fun)(int,int))/*fun是一个指向函数的指针,该函数是一个有两个整型参数的返回整型值的函数*/{intresult;result=(*fun)(x,y);printf("%d\n",result);}返回指针值的函数指针数组p指向数组a易混淆的问题结构体例:描述一个学生的姓名、学号、性别、年龄。每个学生都有这样的属性,它们构成一个描述学生具体情况的一个整体。而每个属性又是一个基本的类型,本例中可分别用字符数组、长整型、字符型、和整型来描述。struct结构体类型名{类型标识符成员名1;类型标识符成员名2;……类型标识符成员名n;};定义结构体类型,描述下列数据例如,对已定义的结构体类型structstudent,可以定义结构体变量:structstudentzhang,stu1;2.在定义结构体类型的同时定义变量3.用匿名形式直接定义结构体类型变量(不出现结构体名)例。定义结构体变量stu1:structstudentstu1;stu1.age=20;scanf("%f",&stu1.score);stu1.age表示引用结构体变量stu1中的age成员,因该成员的类型为int型,所以可以对它执行任何int型变量可以执行的运算。(1)结构体类型变量的各成员(分量)必须单独引用,成员运算符“•”具有最高优先级。(2)不允许对结构