惧留孙网

juliusun.com

在线教程 > C语言教程 > 函数

函数

第 27/50 节 冥河C语言教程


函数操作有 定义、声明、调用

函数定义方式如下:

返回值类型 函数名 ( 逗号分隔的参数列表 ) { 函数体代码 }

函数返回用return语句。函数返回值类型除了定义变量的数据类型外,还有void类型。函数返回值为void时,函数不返回任何值。void类型函数可以省略return语句,省略时,系统执行完所有代码自动返回。函数参数列表不同参数用逗号分隔,每个参数先写类型,后写参数名,用空白字符分隔。函数无参数时,括号内可以为空,也可以写void。函数不能嵌套定义,即一个函数不能定义在另一个函数里。

return 语句用法为:

return 值;

或:

return (值);

不返回任何值时即void类型可以直接写:

return;


  1. int add(int a,int b) //定义函数,返回值为int类型,函数名为add,参数是两个int类型
  2. {
  3. int c = a + b;
  4. return c; //或return (c),或省略上一句直接写成return a+b;或return (a+b);
  5. }
  6. void show_hello( ) //参数为空,括号内也可写上void
  7. {
  8. printf("hello");
  9. return; //此处的return可以省略,函数返回值为void且无return语句时,函数体所有代码执行完自动退出。
  10. }

注意,定义函数时,不要在函数名后面的括号()后面加分号。

注意,函数定义、声明时不会执行,只有在调用时才会执行。

注意,main函数也只是一个函数,定义要符合函数定义语法。main函数严格来说是int类型返回值,参数有两个,第一个int类型,第二个是char **类型,所以main函数一般严格来说,定义时应该类似int main(int argc,char **argv)或int main(int argc,char *argv[])。参数意义以后讲。

定义函数时,参数列表中的变量名也称为形参。

我们一般将函数返回值类型、函数名、参数列表称之分函数原型,有些资料把它与函数体对比,称为函数头部。

函数在调用之前,要么有声明,要么有定义。如果函数定义在了调用之后,需要在调用前声明一下,函数声明,只需把函数原型再加上分号即可。声明格式为:

返回值类型 函数名 ( 逗号分隔的参数或参数类型列表 );

函数声明时,参数列表里类型及类型顺序必须与定义时统一,形参可以与定义时不同,且可省略。例:


  1. int add(int a , int ); //形参a保留,此处可把a改成其它合法变量名或省略,声明只需要说明类型即可。第二个形参b省略,只保留类型
  2. void show_hello( ); //参数为空,括号内也可写上void

多数情况下,我们只需要将函数定义的头部复制一下,加上分号,即可当作声明。

函数调用方式如下:

函数名 ( 逗号分隔的参数列表 )

调用函数时,需要传入实际的变量、常量或表达式值。调用函数时实际传入函数的参数,也称为实参。例:


  1. int m = 5;
  2. int i = add(3 ,m ); //调用add函数时第一个参数为常量3,第二个参数为m的值为5。将函数返回会值赋值给变量i。
  3. show_hello( ); //调用show_hello函数成单独一条语句

把上面的代码整合一下:


  1. #include<stdio.h>
  2. int add(int a , int ); //函数可以声明在函数以外,即全局
  3. int main(int argc, char *argv[ ] )
  4. {
  5. void show_hello( ); //函数也可以声明在其它函数内部
  6. int m = 5;
  7. int i = add(3 ,m ); //虽然add函数定义在调用之后,但是在调用之前已经声明了,放心调用
  8. printf("%d\n",i); //也可与上一条语句全成一句printf("%d\n",add(3 , m) );
  9. show_hello( );
  10. getchar( ) ; //使程序暂停一下
  11. return 0;
  12. }
  13. int add(int a,int b) //定义函数,返回值为int类型,函数名为add,参数是两个int类型
  14. {
  15. int c = a + b;
  16. return c; //或return (c),或省略上一句直接写成return a+b;或return (a+b);
  17. }
  18. void show_hello( ) //参数为空,括号内也可写上void
  19. {
  20. printf("hello"); //也可以在此条语句后加上return;
  21. }

效果类似如下图:

Pic

效果图供供参考,不同平台有所差异。

作者:冥河 QQ:3304576112
交流QQ群:554701039 C语言讲课群
本教程内容由本站保留版权,请勿复制传播
抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的