一、实验目的
1、掌握指针的概念、定义和初始化。
2、理解指针与地址之间的关系。
二、实验内容
1、完成教材实验八第一部分。
2、用指针实现三个整数的由大到小输出。
三、实验程序
一. #include<stdio.h> int main() { int max,x,y,*pmax,*px,*py; scanf("%d%d",&x,&y); py=&y; px=&x; pmax=&max; *pmax=*py; if(*pmax<*py) *pmax=*py; printf("max=%d\n",max); return 0; }
二. #include<stdio.h> int main() { void sace(int *p1,int *p2); int a,b,c,*p1,*p2; scanf("%d%d%d",&a,&b,&c); p1=&a; p2=&b; if(a<b) { sace(p1,p2); } p1=&b; p2=&c; if(b<c) { sace(p1,p2); } p1=&a; p2=&b; if(a<b) { sace(p1,p2); } printf("%d %d %d",a,b,c); return 0; } void sace(int *p1,int *p2) { int d; d=*p1; *p1=*p2; *p2=d; }
四、实验结果及分析
对于三个数比较大小,我们需要进行三次两个数比较。首先定义a,b,c;来存入三个数字,并定义两个指针变量。第一个和第二个数字进行比较,使p1指向第一个数,p2指向第二个数;同理再对第二个第三个数字进行比较;最后再对第一和第二个数字进行比较;最后输出结果。
其中每两个数进行比较时需要调用定义的一个函数来实现两个数的大小替换。如果a>b,则p1与p2值互换。
三次调用定义函数。
五、实验心得
学会运用指针来解决排序与大小选择问题,从这个过程中我更能体会到如何调用函数及如何分辨地址与取值的概念。指针是c语言中重要的一部分,学好它需要更多的耐心及努力,我会好好学习熟练运用指针的。