c++调用gcd函数_c语言-函数

本文详细介绍了C语言中的函数概念,包括函数的定义、参数和返回值,函数调用的一般形式及其执行过程,以及函数的递归调用。文章还讨论了局部变量、全局变量和存储类别,强调了局部静态变量和全局静态变量的特点。此外,提到了函数参数中的值传递机制以及函数原型的重要性。
摘要由CSDN通过智能技术生成

83be51eb21d25b2a9fa0c4c0b934c215.png

一、概述

1、函数的概念(c程序的结构)

(1)一个C程序可以分为若干个函数

(2)每个程序有且只能有一个主函数(main),其他函数都是“子函数”

(3)子函数可以互相调用,但主函数不能被调用

(4)一个C源程序由一个或多个文件构成,一个源程序文件是一个编译单位

7d8510afcb35f8a98c6bcde827607ff8.png

2、说明

(1)c程序的执行从main函数开始,调用其他函数后人回到main函数,程序在main函数结束时结束

(2)所有子函数都是平行的,任何子函数都不属于其他函数

(3)从用户的角度看,函数可分为:标准函数,即库函数;自定义函数

(4)从函数形式看,可分为:

无参数函数:主调函数无数据传送给被调函数,可带或不带返回值。如:printstar();

有参数函数:主调函数与被调函数间有参数传递,主调函数可将实参传送给被调函数的形参, 被调函数的数据可返回主调函数。如:printf()。

#include <stdio.h> 
void main(  ) 
{
    void printstar(  ); 
  void print_message(  ); 
  printstar(  );
  print_message(  );
  printstar(  );
} 
void printstar(  ) 
{
    printf (“*********************** n” ); }     
void print_message(  ) 
{
    printf (“_ _ _ _ _How_do_you_do!n”) ;}   
/*
运行结果:
****************************
How do you do!
****************************
*/

二、函数的定义

函数定义的一般形式:

类型说明 函数名 ([形式参数说明])

  { 函数体 } ——>{ [ 局部变量说明 ] ——> 局部变量:函数体内定义的变量,其有效范围仅限于所在函数的内部,离开函数体则无意义。

       语句

          }

形式参数说明方法:类型说明 变量名 [, 类型说明 变量名 ]……

【1】无参函数的定义形式 

 类型说明 函数名 ()

  { 函数体 }

【2】有参函数的定义形式

  类型说明 函数名 (形式参数说明)

  { 函数体 }

【3】空函数的定义形式

类型说明 函数名 ([形式参数说明])

  { }

三、函数参数和函数的值

  一个C程序由若干个函数组成,各函数调用时经常需要传递一些数据。即调用函数把数据传递给被调用函数,经被调用函数处理后,得到一个确定的结果,在返回调用函数时,把这个结果带回调用函数。各函数间的信息的往来是有参数传递和返回语句实现的。

1、形式参数和实际参数

函数参数:用于函数间数据的传递

形式参数:定义函数时使用的参数(函数名后面括号中的变量名)

实际参数:调用函数时使用的参数(函数名后面括号中的表达式)

说明:

【1】定义参数时,必须说明形参的类型。形参只能是变量或数组。

【2】函数被调用前,形参不占用内存;函数调用结束后,形参所占用的内存也将被回收。

【3】实参可以是常量、变量或表达式。

【4】实参与形参的类型必须一致。字符型和整型可以互相匹配。

【5】C语言中实参对形参的数据传递是“值传递”,即单向传递。它仅由参数的对应位置确定,与名字无关。

2、函数的返回值

【1】返回函数值的方法

函数的返回值也就是函数值,是一个确定的值

1)> 如果一个函数有返回值,就必须使用return语句。

2)> 一个函数中可以有一个以上的return语句,但不论执行到哪个return都将结束函数的调用返回主调用函数

3)> return语句中的括号可以省略;return后面的值可以是一个表达式。

【2】函数值的类型

1)>函数的类型即函数值的类型,如函数是 int 型,函数值也是 int 型。

2)>省略了类型说明的函数是 int 型的。

3)>return 用中表达式的值一般应与函数类型一致。

4)>如果不一致,则需要进行类型转换。只有数值型的数据可以进行自动类型转换,以函数类型为准。

【3】不需要返回值的函数

1)>如果函数中没有使用 return 语句,函数返回值是一个不确定的数值。

2)>如果一个函数不需要返回值(表示一个过程),可以用 void 做类型说明。

3)>如果一个函数被声明为 void 类型,就不允许再引用它的返回值(即只能用函数语句形式调用)。

四、函数的调用

1、函数调用的一般形式

一般形式: 函数名(实参列表)

说明:

(1)如果调用无参函数,实参列表可以忽略,但括号不能省。

(2)实参的各数和形参一般相等。

(3)实参与形参的类型应一 一对应,必要时使用类型转换。

注意:不同系统中,实参的计算顺序不同。微机上一般是从右到左。为避免由此引起的混乱,一般应在调用函数前计算出实参的值。

2、函数的调用方式

(1)函数语句

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

以独立的语句去调用函数。不要求有返回值,仅完成一定的操作。

例 printstar(); printf(“Hello,World!n”);

(2)函数表达式

函数返回一个确定值,以参加表达式的运算。不可用于void

例 m=max(a,b)*2;

(3)函数参数

函数调用作为另一个函数的参数。

例 printf(“%d”,max(a,b)); /*输出大数*/

  m=max(a,max(b,c)); /*三数比大小*/

3、函数调用的执行过程

【1】按从右向左的顺序,计算实参中各表达式的值

【2】按照位置,将实参的值一一对应的传送给形参

【3】执行被调用函数

【4】当遇到 return(表达式)语句时,计算表达式的值,并返回主调函数

e12efbf890a07ae9a98555d08c70408a.png

4、函数的原形说明(函数声明)

C语言中函数声明称为函数原型(形)。函数定义与函数声明不同,声明只与函数定义的第一行相同。声明可以不写形参名,只写形参类型。

函数说明位置:程序的数据说明部分(函数内或外)

作用:告诉编译系统函数类型、参数个数及类型,以便检验

在程序中调用函数需满足以下条件:

(1)被调用函数必须存在,且遵循“先定义后使用”的原则。

(2)如果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值