函数,形参,实参

函数的概述

函数:实现一定功能的,独立的代码模块。我们的函数一定是先定义,后使用。

使用函数的优势:

1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数,减少代码量。

2. 借助函数可以减少重复性的代码。

3. 实现结构化(模块化)程序设计思想:

        结构化程序设计思想:将大型的任务功能划分为相互独立的小型的任务模块来设计。

函数是C语言程序的基本组成单元:

        C语言程序是由一个(必然是main函数)或多个函数组成。

函数的分类

从函数实现的角度:

        库函数:C语言标准库实现并提供使用的函数,比如常见的有printf(),scanf()

        用户自定义函数:需要程序员自行实现,开发中大部分都是这样的函数

从函数形式的角度:

        无参函数:函数调用时,无需传参,可配可不配返回值。

        有参函数:函数调用时,需要参数传递数据,经常需要配套返回值使用。

        相关概念

                主调函数:主动去调用其他函数的函数。

                被调函数:被调用的函数

很多时候,一个函数既可以是主调函数,也可以是被调函数。这种情况一般出自自定义函 数。

int fun_b()
{
printf("执行B\n");
}
int fun_a()
{
printf("执行A\n");
fun_b();
}
int main()
{
fun_a();
}

函数的定义

语法

返回类型 函数名(形参列表) -- 函数头 | 函数首部
{
函数体语句;(函数体) -- 函数体,整个{}包裹的内容包括返回值都属于函数体
}

函数首部:

返回类型:函数返回值的类型

函数名:函数的名称,遵循标识符命名(使用英文字母、数字、_、$,不能以数字开头,建议小写 +下划线命名法)

形参列表:用于接收主调函数传递的数据,如果有多个用" , "分隔,且每一个形参都需要指定类 型。

注意

函数类型标识符变量类型说明符相同,它表示返回的函数值的类型。

在C语言中还可以定义无类型(即void类型)的函数,这种函数不返回函数值,只是完成某种功 能。

如果省略函数的类型标识符,则默认为是int型。

函数中返回语句的形式为 return(表达式);或 return 表达式;其作用是将表达式的值作为函数值返 回给调用函数。其中表达式的类型应与函数类型一致。

如果"形参表列"中有多个形式参数,则它们之间要用" , "分隔。

如果形参表中有多个形参,即使它们的类型是相同的,在形参表中也只能逐个进行说明。 fun1(in t a,int b){}

一个完整C程序中的所有函数可以放在一个文件中,也可以放在 多个文件中。

形参和实参

形参(形式参数):

        函数定义时指定的参数,形参是用来接收数据的,函数定义时,系统不会为形参申请内存,只有当函 数调用时,系统才会为形参申请内存,用于存储实际参数,并且当函数返回,系统会自动回收为形参 申请的内存资源。(本质上所有函数都有return,只不过当我们的函数返回类型是void的时候,return 关键字被省略了)

实参(实际参数):

        函数调用时主调函数传递的数据参数(常量、变量、表达式..,只要有确定的值),实参是传递的 数据。

        实参和形参必须类型相同。若不同时,按赋值规定自动进行类型转换。

        在C语言中,参数传递遵循 单向值传递 ,实参只是将自身的值传递给形参,而不是实参本身。形参 的值的改变不会影响实参。

        实参与形参在内存中占据不同的内存空间,尽管可能实参和形参名称是一样的。

double fun(double a,double b)
{
return a + b;
}
int main()
{
int x = 12,y = 13;
int c = (int)fun(x,y);
// 通过案例:传参时-我们将int类型赋值给double类型,此时程序不报错,因为此时会发生自动类型转换(隐式
转换)
// 通过案例:返回时-我们将double类型赋值给int类型,此时将满足强制转换需求,需要我们手动转换
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值