《C语言程序设计》上机报告14

《C语言程序设计》上机报告14

ID:42090761

大小:87.15 KB

页数:6页

时间:2019-09-07

《C语言程序设计》上机报告14_第1页
《C语言程序设计》上机报告14_第2页
《C语言程序设计》上机报告14_第3页
《C语言程序设计》上机报告14_第4页
《C语言程序设计》上机报告14_第5页
资源描述:

《《C语言程序设计》上机报告14》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、上机14指针(3)上机课时课内:2课时;课外:2课时上机类型验证性上机上机目的主要掌握指针和函数的关系以及应用。1)指针变量作为函数参数。2)指向函数的指针变量。3)返回指针的函数上机内容一、指针变量作为函数参数(必须掌握)函数的参数不仅可以是整型、实型、字符型等变量,还可以是数组元素,还可以是数组名,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。请大家对比“上机11”,下面我们再用一个表格总结如下:比较项等型符数字参、歎型函实为、作型量整变素参元实组数数函作参名实组散数函传递方式

2、递传值递传值上机任务1任务要求:现在让我们再次回到“上机11的上机任务4”,分析下面程序,说明程序错误的原因,并找到解决办法。画出用普通变量作为函数参数的内存图#includeintexchange(intxrinty)〃函数定交換xfty的值]{.inttemp;temp=x;x二y;y=temp;-}intmamO]{.intx=5,y=3;printf("befor:x=%dry=%d"fxry);〃交三芒输exchange(x,y);〃函数讦三printf(l,afte

3、r:x=%dry=%dMlxry);〃交换后输出儿和y〃交换成功了吗?什么原因呢?return0;}现在你能用指针解决了吗?指针完成数据交换代码如下:画出用指针变量作为函数参数的内存图二、函数指针——指向函数的指针变量(理解或了解)在C语言中,一个函数总是占用一段连续的內存区,而函数名就是该函数所占内存区的首地址。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。我们把这种指向函数的指针变量称为“函数指针变量”。函数指针变量

4、定义的一般形式为:类型说明符(*指针变量名)();(1)其中“类型说明符”表示被指函数的返回值的类型。(2)(*指针变量名)表示“*”后面的变量是定义的指针变量。(3)最后的空括号表示指针变量所指的是一个函数。例如:int(*pf)();表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。F面通过一个程序来说明用指针形式实现对函数调用的方法。01.02.03.04.05.06.07.08.09.10.11.12.13.14.intmax(inta,intb){if(a>b)retu

5、rna;elsereturnbl;}Imain(){intmax(intb):int(切max]();〃1•定义一个指向函数的指针变量pmax.]〃注意:这个时候还没初始化,即pmax不指向intx,y,zipmax=max;printf("in2.捋指针pmaxfM向函数max,即完成了指针的初始化I为辰面通过指针引用函数傅准备put]twonumbers:*");scanf&y);_/xJL3、通过指针pmax^用函数maxz--pmax.)..x,y.);注意这更的卖参是变量x和y■不是指针p

6、rintf("meixmunF%d",z);从上述程序可以看出用,函数指针变量形式调用函数的步骤如下:(1)先定义函数指针变量,如后一程序中第9行int(*pmax)();定义pmax为函数指针变量。(2)把被调函数的入口地址(函数名)赋予该函数指针变量,如程序中第11行pmax=max;即指针pmax指向了函数max.(3)用指向函数的指针变量来调用函数,如程序第14行z=(*pmax)(x,y);(4)调用函数的一般形式为:(*指针变量名)(实参表)三、指针函数——返回指针的函数(理解或了解)前

7、面我们介绍过,所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数。定义指针型函数的一般形式为:类型说明符*函数名(形参表){/*函数体*/}其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。类型说明符表示了返回的指针值所指向的数据类型。女口:int*ap(intx,inty){/*函数体*/}表示ap是一个返回指针值的指针型函数,它返回的指针指向一个整型变量。01.02.03.04.05.06.07.08.09

8、.10.11.12.13.14.15.16.17.18.19.20.下面程序是通过指针函数,输入一个1〜7之间的整数,输出对应的星期名。main(){inti;char*day_name(intn):printf(,zinputDayNo:");scanf&i);if(i<0)exit(l);printf("DayNo:%2d-->%s",i,day_name(i));}char*day_name(intn){staticchar切ame」={"Illegal

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。