自定义函数

自定义函数:

        (1)封装简化有规律或重复的代码,提高代码的复用性。

        (2)划分模块,提高代码的可读性。

1.函数的自定义

返回值类型 函数名 (数据类型1,数据类型2)      形参列表   //函数首部

{

语句块;          //函数体

return 值;(常量,变量,表达式)      //void 没有返回值,不写或者return ;

}

eg:int ret = add (1,1);

返回值类型:返回值是函数执行结束返回给调用者的结果。

函数名:函数名是标识符的一种。

形参列表:参数是函数执行过程中所需要的一些必要信息。

函数体:定义了函数实现自身功能的逻辑代码。

注意事项:

                1.当函数返回值类型不为void时,必须写return值否则是一个不正确的值;为void时最好return ;

                2.当函数返回值不写时,编辑器默认为int类型

                3.当函数返回值类型与实际返回值的类型不一致时,以返回值类型为准,会发生数据类型隐式转换

2.函数的调用

函数名(agr1,agr2,...);实参列表

agr1:需要的是一个值(常量,变量,表达式,函数调用)

注意事项:但函数调用时传递的实际参数类型与形参不一致时,以形参类型为准,发生数据类型的隐式转换

3.函数传参:数量一致类型匹配

1)值传递(赋值传递)

实参将值传递给形参,形参的空间与主调内实参的空间相互独立,仅存在拷贝关系。

2).全局变量传参

利用全局变量的全局作用域,在两个函数间进行读写实现信息传递

3)数组传参

数组作为函数参数传递的时候传递的是空间的编号

arry(基地址)[1(偏移量)]

4.函数的声明

在函数调用前一定要函数的声明

声明和定义:

定义一般会开辟对应空间;声明一般不会开辟对应空间

声明可以有多次,定义只能有一次

变量的存储类型

1.auto(自动的变量、局部变量、默认):存放在系统栈空间,由操作系统自动管理

2.register(建议性:寄存器变量):将数据变量存放在寄存器内

3.static(静态变量):

(1)修饰局部变量,称为静态变量,保存数据区,具有和全局变量一样的生存周期,作用域不变

(2)修饰全局变量,不改变生命周期,限制在本文件使用

(3)修饰函数,限制在本文件使用

4.extern(外部变量)

extern修饰全局变量,声明此变量的定义在外部文件,

extern修饰函数,声明此函数的定义在外部源文件

作用于与生命周期

1.作用域:变量在程序中所能使用的范围

        局部变量:

                        1.局部变量的作用域从定义开始到离他最近的花括号结束

                        2.作用域重叠时,最近的变量作用域会屏蔽较远的

        全局变量:

                        全局变量的作用域,从定义开始到在整个.c结束

        函数:

                函数的作用域,从定义开始到在整个.c结束;如果调用不在作用域会产生隐士声明;需提前声明

2.生命周期:变量从开辟内存到回收的整个过程。

        局部变量:

                        从程序执行到定义时开辟内存空间,到离开作用域回收空间

        全局变量

                        从编译阶段开辟内存空间(分配好了存储位置),到整个应用程序结束回收空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值