c程序中用指针变量作函数参数

c程序中用指针变量作函数参数

ID:12652154

大小:35.00 KB

页数:4页

时间:2018-07-18

c程序中用指针变量作函数参数_第1页
c程序中用指针变量作函数参数_第2页
c程序中用指针变量作函数参数_第3页
c程序中用指针变量作函数参数_第4页
资源描述:

《c程序中用指针变量作函数参数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C程序中用指针变量作函数参数樊继(平顶山工业职业技术学院河南平顶山467000)摘要:本文首先介绍了实参变量与形参变量的基本概念和使用方法。在此基础上,重点对指针变量作函数参数进行了全面的分析、概括和总结。关键字:实参变量与形参变量指针变量函数参数函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中,具体应用如下:一、用指向变量的指针作函数参数使用指针变量作函数参数,在被调用函数中改变了变量的值,也就是改变了main函数中变量的值。1.指针变量作函数与变量作函数的区别c语言规定实参变量对形参变量的数据传递是“值传递”即单向传递、只有

2、实参传给形参,而不能有形参传给实参,在内存中实参与形参是不同的存储单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,在执行一个被调用函数是,形参的值如果发生改变,并不会改变主调函数的值。为了使在函数中改变了的值能被main函数所用,应该使用指针变量作函数参数,在函数执行过程中,使指针变量所指向的变量值发生变化,函数调用结束后,这些值的变化依然保留下来,这样就实现了“通过函数调用使变量的值发生变化,再main函数中使用这些改变了的值”的目的。2.通过函数调用得到n个要改变的值的方法①在主函数中设n个变量,用n个指

3、针变量指向他们。②然后将指针变量作实参,将这n个变量的地址传给所调用函数的形参。③通过形参指针变量,改变该n个变量的值。④主调函数中就可以使用这些改变了值的变量。二、在一维数组中用指向数组元素的指针变量作函数参数如果有一个实参数组,想在函数中改变此数组的元素的值,实参和形参都用指针变量。main()f(int*x,intn){inta[10],*p;{p=a;……}f(p,10);…}数组名a代表数组的起始地址。4实参p为指针变量,p指向a[0],即p=a或p=&a[0],形参为数组的指针变量x,将a[0]的地址传给形参x,使指针变量x指向a[0],x的初始值也是&a[0],通过x值的改

4、变,可以使x指向数组中a的任意元素。在函数执行过程中,可以使x指向数组a的任意元素的值变化,而它也就是a[i]的值发生变化,主函数可以使用变化了的数组元素的值。一、在二维数组中使用指针变量作函数参数一维数组名可以作为函数参数传递,多维数组名也可以作为函数参数传递,在用指针变量作形参接受实参数组名传递的地址时有两种方法。1.用指向变量的指针变量main(){…floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}…average(*score,12);}voidaverage(float*p,intn){…}实参用*sco

5、re是一个地址,指向二维数组score的a[0][0]。形参p为指向实型的指针变量,p先后指向二维数组score的各个元素。p+1指向下一个元素。2.用指向一维数组的指针变量。main(){…floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}…search(score,2);}voidsearch(float(*p)[4],intn){…}实参是score二维数组名,表示二维数组的起始地址,指向二维数组score的a[0][0]。形参p不是指向一般实型的指针变量,而是包含4个元素的一维数组的指针变量。函数调用开始时,

6、将实参score的值(首地址)传给p也等于score。p+n是一维数组score[n]首地址,*(p+n)+i是score[n][i]的地址,*(*(p+n)+i)是score[n][i]的值。二、用指向字符串的指针变量作函数参数将一个字符串从一个函数传送到另一个函数,可以用传送地址的办法,即用指向字符的指针变量作函数参数。在被调用得函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。main(){…char*a=”Iamateacher”;char*b=”youareastudent”;cstr(a,b);…}voidcstr(char*from,char*to){4…  

7、}实参a和b是指针变量,分别指向”Iamateacher”和”youareastudent”的首地址。a+1指向下一个字符的地址。a+i指向i个字符的地址。*(a+i)表示第i个字符。形参from和to也是指针变量,分别接受a、所指向的首地址,因此from[i]和a[i]、to[i]和b[i]指向同一内存单元,改变from[i]和to[i]的值也就是改变a[i]和b[i]的值。一、用指向函数的指针变量作函数参数一个函数在编译时被分配

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

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

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