C程序设计语言——七、函数(2)参数、返回值、嵌套、递归调用

目录

一、函数的参数:形式参数和实际参数

1、值传递方式

2、地址传递方式

3、数组名作为函数参数,传递的是地址

4、《数组 a 中存放了一个学生5门课程的成绩,利用子函数求平均成绩》

二、函数的返回值

1、使用规则

三、函数的嵌套

1、使用规则

2、函数调用举例——《求C(m,n)》

四、函数的递归调用

1、调用该函数本身

2、用 if 语句控制

3、《计算n!=n*(n-1)*n(n-2)……*1》

4、《每个人都比他前一个人大2岁,第一个人20岁》


一、函数的参数:形式参数和实际参数

通常有值传递方式(单向)地址传递方式(双向)两种

1、值传递方式

  1. 实参可以是常量、普通变量、表达式、带有返回值的函数调用、数组元素;
  2. 实参与形参在数量、顺序要一致。类型应相同或满足赋值相容;
  3. 没有函数调用时,形参不占内存;函数调用时,为形参分配内存;形参与实参占用不同的内存单元,调用函数执行完后,形参释放内存(随用随分配,用完就释放
  4. 单向数值传递,只能实参的值传递给形参,不能将形参的值传递给实参;
  5. 形参只能是变量;
  6. 实参和形参可以同名
  7. 对于简单变量,形参的变化不会影响实参
  8. 每个函数只会返回一个函数值

2、地址传递方式

  1. 函数调用时,将数据的存储地址作为参数传递给形参
  2. 形参与实参占用同样的存储单元
  3. “双向”传递
  4. 实参和形参必须是地址常量或变量

3、数组名作为函数参数,传递的是地址

  1. 实参数组和形参数组类型,维数一致;
  2. 形参数组可以不指明大小;
  3. 二维数组作为形参时,只有第一维大小可省略,第二维大小必须指定;

4、《数组 a 中存放了一个学生5门课程的成绩,利用子函数求平均成绩》

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值