Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 函数 1
【标  题】:函数 1
【关键字】:
【来  源】:http://www.cublog.cn/u/18497/showart.php?id=150385

函数 1

Your Ad Here
   函数的概念:

函数是C语言程序的组成部分,C语言程序的功能可以通过函数之间的调用来实现。

C语言函数分为两类:

1)标准函数:系统提供的已设计好的函数。

2)用户定义的函数:用户自己编写的用来解决具体问题的函数。

 

  说明:

 1)一个源程序文件由一个或多个函数组成。一个源程序文件是一个编译单位,即以源文件为单位进行编译。

2)一个C程序由一个或多个源程序文件组成。

3C和程序的执行从main函数开始,调用其它函数流程回到main函数,在main函数中,结束整个程序的运行。Main函数是系统定义的。

4)所有函数都是平行的,即在定义函数时,是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。

5)从函数的形式看,函数分两种:

a)无参函数:主调函数并不将数据传送给被调用函数。

b)有参函数:在调用函数时,在主调函数和被调函数之间有参数传递,也就是说,主调函数可以将数据传送给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。

 

函数的定义:

 格式

1 无参函数的定义:

  函数返回值类型 函数名()

  {

     函数体;

   }

说明:返回值类型可以是基本类型也可以是用户自定义类型.

 

2 有参函数的定义:

  函数返回值类型 函数名(参数列表)

  {

     函数体;

   }

说明:

1)函数类型标识符:指出return语句返回的值的类型,它可以是C中代任意合法的数据类型。

2)函数名:应是一个标识符。函数名后的一对圆括号是函数的象征。

3)形式参数表列:是写在圆括号中的一组变量名,称为形式参数,形式参数之间用逗号分隔。无参函数,圆括号内为空。

4)形式参数说明:是对形式参表列中的每一个形式参数所作的类型说明,应写在用花括号{ }括起来的孙函数体的前面。

5)函数体:用{ }括起来的部分,函数体是由说明部分和语句部分组成的。

 例如:

  int max(int a,int b)  /*int a,int b 是参数列表*/

{

  if(a>b)return a; //函数体

  else return b;

}

 

  函数参数和函数值:

在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系。

在定义函数时,函数名后面括号中变量名称为形式参数,简义形参

在调用函数时,函数名后面括号中的表达式称为实际参数,简称实参

 

例如:

#include "stdio.h"

int max(int a,int b)

{

   if(a>b)return a;

   else return b;

}

void main()

{

  int x,y,Max=0;

  scanf("%d,%d",&x,&y);

  Max=max(x,y);

  printf("%d",Max);

}

 

关于形参与实参的说明:

1)在定义函数中指定的形参变量,在末出现函数调用时,它们并不占内存中的存储单元。只有发生函数调用时函数max中的形参才被分配内存单元。调用结束后,形参所占用的内存单元也同时被释放。

2)实参可以是常量、变量或表达式,如:max(3,a+b);但要求它们有确定的值。在调用时将实参的值赋给形参变量(如果形参是数组名,则传递的是数组首地址,而不是变量的值)。

3)在定义的函数中,必须指定形参的类型。

4)实参与形参的类型应一致。只有字符型和整型可以互相通用。

5)实参变量对形参变量的数据传递是值传递,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。

          在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍然保留并维持原值,形参的值如果发生改变,并不会改变主调函数的实参值。

6ANSI新标准允许使用另一种方法对形参类型说明,即在列出形参表列中同时说明形参类型。

如:int max(int x,int y) 

  函数的返回值

在函数体中使用return语句:

格式:return (表达式);

说明:在函数中可以有多个return 语句,但只有一个能返回成功.

  

 

  函数的调用:

 

  格式:函数名(实参表列);

 

函数调用语句的执行过程:首先计算每个实参表达式的值,并把此值存入所对应的形参单元中,然后把执行流程转入函数体中,执行函数体中的语句,函数体执行完之后,将返回到调用此函数的程序的下一条语句,继续去执行。

   当执行到函数体的右花括号或return语句时,表示函数体执行完成,这时将返回到主调程序中。

 

说明:

1)如果是无参函数,则没有实参表列,但括弧不能省略。

2)如果实参表列包含多个实参,则各参间用逗号隔开。实参与形参的个数应相等,类型应一致。实参与形参应一一对应,转递数据。

3)对实参表求值的并不是确定的,系统是按自右向左的顺序求值。

 

7.3求两数之和

#include "stdio.h"

void main( )

{float a,b,c;

float add( );

scanf(%f,%f,&a,&b);

c=add(a,b);

printf(sum=%f,c);

}

fioat add(x,y)

float x,y;

{float z;

z=x+y;

raturn(z);

}

 

 

 

 

函数 2:【上一篇】
幸福与否,只在乎你的心:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • 获得本页面URL地址的三个JS代码
  • Task Manager里的Memory Usage 数字或者WorkingSet数字是否很有用呢?
  • Spring中SimpleFormController & MultiActionController合并
  • [转帖]关于程序员的好帖(vcroad.net原创)(推荐)
  • Reserved Names
  • PHP 选项及相关信息函数库
  • 测试驱动开发的探讨
  • ActiveX深入浅出(一)
  • Best of VIM Tips(译注) - 连载4 查找(c)
  • 详细说明 foxrar.exe 病毒
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.