- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈C语言函数
浅谈C语言函数
摘要:本文主要讲述了C语言的定义、C语言的调用、函数的实际参数和函数的形式参数之间的关系以及函数调用过程,论述在C语言使用中函数调用的过程,讲明函数调用的实质就是由实参赋值给形参,不再区分传值调用和传址调用,有没有修改主调函数中变量内容主要在于有没有间接访问。
中国论文网 /8/view-7181942.htm
关键词:C语言 函数调用 间接访问
中图分类号:TP312 文献标识码:A 文章编号:1007-9416(2015)12-0000-00
C语言程序设计是结构化程序设计,函数是C语言的基本模块,函数调用是C语言运行的重要机制,在C语言中除了提供大量的库函数外,要实现具体的功能必须自己定义函数,定义出函数要实现的功能,使用函数的过程就是调用函数的过程,即函数间的接口,接口的实现是通过参数传递方式实现,函数调用的关键是正确传递实参值,用正确的形参变量来接收。
1 函数的定义
所谓函数定义,即定义函数功能,如求和,求最值,排序功能,用C语言提供的选择结构、循环结构写出具体的代码实现。如果函数只是完成某项特定的处理任务可以定义无返回值的函数,如果函数最后要返回结果,可以定义的返回值的函数,如下两段代码左边有返回值,右边没有返回值。
int sum1(int m)//函数头部
{ int i,sum=0;
for(i=1;i
int a=3,b=4;
void swap1(int a,int b){//值传递,也称为单向传递
int t;
t=a;a=b;b=t;
}
void swap2(int *a,int *b){//地址传递,也称为“双向传递”,实质还是单向传递
int t;
t=*a;*a=*b;*b=t;
}
main(){
swap1(a,b);
printf(”a=%d,b=%d\n”,a,b);
swap2(a,b);
printf(”a=%d,b=%d\n”,a,b);
}
第一个输出结果为3,4,第二个输出结果为4,3,在这里传值调用和传址调用正确,多数教材和资料中谈到传址调用时介绍是双向传递,应该是不正确的,以下面例子为例:
4.2有下列程序
# include
void fun1(int x,int y)
{ int z;
z=x; x=y; y=z;
}
void fun2(int *x,int *y)
{ int z;
z=*x; *x=*y; *y=z;
(*x)++; (*y)++;
}
void fun3(int *x,int *y)
{ int z;
z=*x; *x=*y; *y=z;
(*x)++; (*y)++;
}
void main()
{ int a=5,b=9;
fun1(a,b);
printf(”a=%d,b=%d\n”,a,b);
fun2(a,b);
printf(”a=%d,b=%d\n”,a,b);
fun3(a,b); printf(”a=%d,b=%d\n”,a,b);
}
在这个程序中有三次函数调用,第一次调用结果还第三次调用都没有改变主调函数中变量的值第二次改变了,第一次是传值调用,第二、三次是传址调用,第二次改变的实质不是因为是传址调用,而是因为使用了间接访问。
5 C语言程序设计函数使用方法
5.1函数是C模块语言的模块
C语言的基本框架是函数,函数是C语言的基本模块,在理解中列举生活中的例子,例如一个部门一开始很小,只有一个人,相当只有一个主函数,慢慢的部门壮大起来,需要的人数增多,这时候部门就可以再进一个人,那必然有一个领导另一个,领导者就是先来的人,也就是主函数,被领导者是后来的人,即被调用函数,主函数安排任务给被调函数,要把任务内容告诉被调用函数,这变是参数传递。
5.2函数代码定义过程
定义时先定义被调用函数,然后再定义主函数,这样在主函数中就不用做函数声明了。
定义被调用函数时,先把函数名字及圆括号和大括号写,里面的代码先不写。然后写主函数定义,主函数在这里没有返回值也无参,主函数的头部定义没有问题,然后先写主函数体代码,通常主函数分三部分, 输入、调用和输出,这三部分相对比较难的是调用,调用时要分析有没有返回值,有没有参数,如果有参数,有几个并且参数的类型要确定,调用时的参数是实际参数,根据实参和形参的一一对应关系,实参确定好了,形参的类型和个数自然也就确定了,这样被调用函数的头部就定义
文档评论(0)