初识C语言(五)

本文详细介绍了C/C++中的函数概念,包括库函数的使用、自定义函数的格式、形参和实参的区别、return语句的注意事项、数组作为函数参数、嵌套调用和链式访问,以及函数的声明与定义、static和extern的关键作用。
摘要由CSDN通过智能技术生成

函数

库函数

库函数是在标准库中对应的头⽂件中声明的,所以库函数的使⽤,务必包含对应的头⽂件

C/C++官⽅的链接: https://zh.cppreference.com/w/c/header

cplusplus.com: https://legacy.cplusplus.com/reference/clibrary

自定义函数

格式

ret_type fun_name(形式参数)
 {
 }

        ret_type 是函数返回类型

        fun_name 是函数名

        括号中放的是形式参数

        { }括起来的是函数体

形参和实参

形参

函数名后()里的形式参数

如果只是定义了函数 ,而不去调用的话, 函数参数只是形式上存在的,不会向内存申请空间,不

会真实存在的,所以叫形式参数

形式参数只有在函数被调用的过程中为了存放实参传递过来的值,才向内存申请空间,这个过程就

是形参的实例化

实参

调用函数时,传递给形式参数的实际参数

形参和实参的关系

形参和实参是各自独立的内存空间,可以理解为形参是实参的临时拷贝

return语句

return语句使用的注意事项:

return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执行表达式,再返回表达式

的结果

return后边也可以什么都没有,直接写 return; 这种写法适合函数返回类型是void的情况

return返回的值和函数返回类型不⼀致,系统会自动将返回的值隐式转换为函数的返回类型

return语句执行后,函数就彻底返回,后边的代码不再执行

如果函数中存在if等分支的语句,则要保证每种情况下都有return返回,否则会出现编译错误

数组做函数参数

数组在传参的时候,实参就写数组名就行,加上[ ]会被识别成数组元素

实参和形参的名字是可以一样的,也可以不一样

函数的在设计的时候,一定要尽量功能单一

数组在传参的时候,形参的数组和实参的数组是同一个数组,不是拷贝

函数的形式参数要和函数的实参个数匹配

函数的实参是数组,形参也是可以写成数组形式的

形参如果是一维数组,数组大小可以省略不写

形参如果是二维数组,行可以省略,但是列不能省略

嵌套调用

函数之间的互相调用,每个函数就像⼀个乐高零件,正是因为多个乐高的零件互相无缝的配合才能

搭建出精美的乐高玩具,也正是因为函数之间有效的互相调用,最后写出来了相对大型的程序

链式访问

将一个函数的返回值作为另外一个函数的参数,像链条一样将函数串起来就是函数

的链式访问

函数的声明和定义

单个文件

先声明,后调用,函数的定义也是一种特殊的声明

多个文件

头文件声明,源文件定义,调用函数的源文件头文件用#include"头文件.h"

好处        方便团队协作

               代码模块化 逻辑更加清晰

               可以隐藏代码

static

是静态的的意思,可以用来:

                                修饰局部变量

                                修饰全局变量

                                修饰函数

static修饰局部变量

        改变了局部变量的生命周期,生命周期改变的本质是改变了变量的存储类型,本来局部变量

存储在内存的栈区,但是被 static 修饰后存储到了静态区

        存储在静态区的变量和全局变量是一样的,生命周期就和程序的生命周期⼀样了,只有程序

结束,变量才销毁,内存才回收,但作用域不变

        一个局部变量出函数后,还想保留值,等下次进入函数继续使用,就可以使用static修饰

static修饰全局变量或函数

        使得这个全局变量或函数只能在本源文件内使用,不能在其他.c文件内使用

        全局变量或函数默认是具有外部链接属性的,其他.c文件想使用,只要适当声明就可以使用

但是被static修饰之后,外部链接属性就变成了内部链接属性,只能在自己所在的.c文件内部使用,

其他.c文件,即使声明了,也无法正常使用。

        如果⼀个全局变量或函数,不想被其他.c文件发现,可以使用static修饰

extern

extern是用来声明外部符号的,如果一个全局的符号在A.c文件中定义的,在B.c文件中想使用,就

可以使用extern进行声明,然后使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值