网站大量收购独家精品文档,联系QQ:2885784924

函数间数值的传递.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数间数值的传递

函数间数值的传递 第一部分:函数间数值的传递 ---简单数值间的传递:实参--形参进行单方向的传递,该传递的过程属于一个复制的过程,形参的改变不会改变对应实参元素的值: 例如: #include stdio.h void fun(int a,int b,int c) { printf(2a=%d,b=%d,c=%d\n,a,b,c); a+=10;b+=20;c=a+b; printf(3a=%d,b=%d,c=%d\n,a,b,c); } void main() { int x=10,y=20,z=30; printf(1x=%d,y=%d,z=%d\n,x,y,z); fun(x,y,z); printf(4x=%d,y=%d,z=%d\n,x,y,z); } 第二部分:函数间地址的传递 1.函数间地址的传递,可以通过形参的改变来改变对应实参元素的值,该传递过程属于共享的过程。 #include stdio.h void fun(int *a,int *b,int *c) { printf(2a=%d,b=%d,c=%d\n,*a,*b,*c); *a+=10;*b+=20;*c=*a+*b; printf(3a=%d,b=%d,c=%d\n,*a,*b,*c); } void main() { int x=10,y=20,z=30; printf(1x=%d,y=%d,z=%d\n,x,y,z); fun(x,y,z); printf(4x=%d,y=%d,z=%d\n,x,y,z); } 2.当形参为指针对应的实参为地址或指针 ---地址为实参: #include stdio.h int fun(int *a,int *b) { int s; s=*a+*b; return s; } void main() {int x,y,s; scanf(%d%d,x,y); s=fun(x,y); printf(s=%d\n,s); } ---指针为实参: #include stdio.h int fun(int *a,int *b) { int s; s=*a+*b; return s; } void main() {int x,y,s,*px,*py; px=x;py=y; scanf(%d%d,px,py); s=fun(px,py); printf(s=%d\n,s); } 第三部分:一维数组和函数 1.一维数组中元素值作为实参: 数组中的每个元素的实质都代表了一个存储空间(变量),因此数组中元素的传递实质就是数值的传递。和变量间数值的传递相同。 例如: #include stdio.h void fun(int x,int y,int z,int *s) { *s=x+y+z; } void main() { int a[3]={11,22,33},s; fun(a[0],a[1],a[2],s); printf(s=%d\n,s); } ---- #include stdio.h int fun(int x,int y,int z) { int s; s=x+y+z; return s; } void main() { int a[3]={11,22,33},s; s=fun(a[0],a[1],a[2]); printf(s=%d\n,s); } 2.一维数组名作为实参:对应的形参为(1)*a (2)a[] (3)a[M] 例如1: #include stdio.h int fun(int *p) { int i,s=0; for(i=0;i3;i++) s+=*(p+i); return s; } void main() { int a[3]={11,22,33},s; s=fun(a); printf(s=%d\n,s); } 例如: #include stdio.h #define M 8 void fun(char *b,int n) { int i; for(i=0;in;i++) b[i]=*; } void main() {char s[M]={A,B,C,D,E,F,G,H}; int i; for(i=0;iM;i++) printf(%3c,s[i]); printf(\n); fun(s,4); for(i=0;iM;i++) printf(%3c,s[i]); printf(\n); } 3.数组中元素的地址作为实参: #include stdio.h #define M 8 vo

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档