文档介绍:实验七指针与结构体
一、实验目的
。
。
,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。
,了解用指针表示二维数组元素的方法。
,能熟练使用指针处理字符串。
;
二、实验预习
,引入指针是为了解决什么问题。指针和地址之间的关系是什么?
?
?当指针自增时,跳过的地址为多少,与什么因素有关?
?数组名可以通过自增来实现地址空间的变化吗?
,在定义的时候如何区分?
?结构体类型和结构体变量分别指什么?
三、实验内容
(一)阅读并调试下列程序,根据要求给出程序结果。
。
⑴编程分析
定义指向整型变量的指针变量,然后通过“*指针变量”的形式即可访问相应的简单变量。
⑵参考程序
/* 用指针访问简单变量的程序*/
#include ""
void main()
{
int a,b,c,temp;
int *p1,*p2,*p3;
printf("请输入三个整数值(a,b,c):\n");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a; /* 使指针p1指向简单变量a */
p2=&b; /* 使指针p2指向简单变量b */
p3=&c; /* 使指针p3指向简单变量c */
if(*p1<*p2)
{
temp=*p1;*p1=*p2;*p2=temp;
}
if(*p1<*p3)
{
temp=*p1;*p1=*p3;*p3=temp;
} /* 至此p1指向了三个数中的最大数*/
if(*p2<*p3)
{
temp=*p2;*p2=*p3;*p3=temp;
} /* 至此p3指向了最小数,p2指向了中间数*/
printf("%d,%d,%d\n",*p3,*p2,*p1);
}
⑶程序调试
①运行程序,任意输入三个整数(之间以逗号分隔),察看并分析程序运行结果。
运行结果:
结果分析:此程序实现了三个随即输入的整数按从小到大的顺序排列输出
②运行程序,按由小到大的顺序输入三个整数(之间以逗号分隔),察看并分析程序运行结果。
运行结果:同上
分析结果:同上
③运行程序,按由大到小的顺序输入三个整数(之间以逗号分隔),察看并分析程序运结果。
运行结果:同上
分析结果:同上
。
⑴编程分析
在实验中,我们可以用下标访问数据元素的方法,实现有序数列的数据插入问题。也可以用指针访问数组元素的方法予以实现。只要在原有数组程序的基础上,将下标访问数组元素改为用指针访问数组元素,问题即得以解决。
⑵参考程序
/* 用指针法在一维有序数组中插入数据程序*/
#include "s