资源描述:
《实验8指针及其应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验八指针及其应用【实验目的】1.理解指针概念、求变量地址和指针寻址操作,掌握指针的各种运算方法。2.掌握指针作为函数参数,实现函数与被调用函数之间数据传递的方法。3.理解指针与数组的关系,掌握运用指针访问数组元素的方法。4.理解指针与字符串的关系,学握运用指针处理字符串的方法。【实验内容】一、读程序,运行程序,解释程序结果。程序1:#includemain(){intx,y,*pt1,*pt2,tl,t2,t3;x=8;y=4;ptl=&x;pt2=&y;tl=*ptl**pt2-11;t2=3*-*pt2+*pt1+5;printf(nAddress
2、ofx=%uH,ptl);printf("Addressofy=%u'*,pt2);printf(,,u);printf(nx=%d,y=%dH,x,y);printf(ntl=%d,t2=%dn,tl,t2);*ptl=*pt2+7;*pt2=*ptl-6;t3=*ptl**pt2+3;printf(nH);」(・・u£ssg」ppvunp?AluguIgE..)七.s」dFldol二0「6ooz9HExl£•40匕2」d沃卫-()upnuAll.o-plsvQpnou一#_(ErMP%HEJlu-cdwx=u=e%H>?p%HX=)七uud(
3、A1-Exl.E)IdeMSPOAAq・o一plsv(Dpnoulf#od=u%n-d爻・・5n%nxxxp.c三車HX2二0一XN=£n%HaxcaoorMP%H-SQFu・.)七UKu」)七UKu厂)七UKur)七u-cd5・・)七u-cd+±ft++-Qd诜土osolodKuuw%p%弓%一x.・)七UK(shmzmintt;printf("swapl:");printfC'x的地址=%d,x的地址=%du,&x,&y);printf(Hswapl交换后:x的<=%d,y的值=%dH,x,y);t=x;x=y;y=t;printf(Hswapl交换
4、后:x的值二%d,y的值=%d'r,x,y);}voidswap2(int*x,int*y){intt;printf("swap2:u);printf(Hx的地址=%d,x的地址二%d”,x,y);printfC'swap2交换前:x所指变量的值=%d,y所指变量的值=%d*x,*y);t=*x;*x=*y;*y=t;printf(Mswap2交换前:x所指变量的值=%d,y所指变量的值=%d”,*x,*y);}voidmain(){inta,b;scanf(,,%d%dH,&*&b);printf(nn);printfC'a的地址=%d,b的地
5、址=%dH,&a,&b);printf(”调用swapl前:a的值二%d,b的值二%du,a,b);swapl(a,b);printfC调用swapl后:a的值=%d,b的值=%d",a,b);swap2(&a,&b);printf(”调用swap2后:a的值二%d,b的值二%d",a,b);二、修改程序中的错误,并解释。对于教材中的例9.1,编写如下程序:程序1:#includechar*a;char*b;char*c;charxyz;voidassp(charcharpref);intmain(){charprefa,prefb,pr
6、efc;printf(npleaseinputA,B,C'sprefer:H);scanf(M%c%c%c",&prefa,&prefb,&prefc);getchar();assp(a,prefa);assp(b,prefb);assp(c,prefc);printf(HpleaseinputfemaleX,Y,Zfsprefer:H);scanf(n%c%c%cH,&x,&y,&z);if(*a=X)printf(”Aislucky!u);if(*b==b)printf(HBislucky!M);if(*c=='c')printf(nCislucky!
7、n);return0;voidassp(char*p,charpref){switch(pref){caseY:p=&x;break;case'y':p=&y;break;casey:p=&z;break;程序2:#includechar*b,*c;char*y,*z;char*tpre(charpref);intmain(){charprefa,prefb,prefc;printf(HpleaseinputA,B,C'sprefer:H);scanf(H%c%c%c",&prefa,&prefb,&