函数和变量的类别

一 .函数

1.1函数的概念

封装一段代码,使其便于使用

优点:	
	降低耦合度
	减少代码复用率
	提高代码可读性

1.2函数的分类

系统调用		系统提供,可以直接操作内核的函数
库函数			系统提供,不能直接操作内核的函数
自定义函数

1.3函数的使用步骤

声明
定义
使用

1.3.1.调用和定义的关系

一个函数先调用,再定义,需要对函数进行声明,可以调用多次,每次都执行一遍函数中封装的代码
一个函数先定义,再调用,不对函数进行声明也可以运行.
如果一个函数不被调用,那么这个函数不会起任何作用

1.4.函数的定义

返回值类型	函数名(形参列表)
		{
			代码块
			
			return 0;
		}
		
		
返回值类型:函数的返回值的数据类型,如果没有返回值,类型则为void
			再函数中用return 来返回返回值
函数名:标识符,自定义的
形参列表:定义的多个变量(函数需要的变量),可有可无,多个参数直接用逗号隔开
代码块:封装的代码
		return 表示函数结束,并返回返回值,结束当前函数
		return 关键字后有变量或值,表示结束当前函数并且返回的值或变量,其返回值类型就是这个值或变量的数据类型

1.4.1函数的定义位置

定义再函数外

注意

同一程序中函数名不能相同

1.5函数的声明

extern  函数名(形参列表)


注意:
	此时形参列表中的变量名可以忽略不写

声明位置:
		函数外

1.6函数的调用

无返回值的函数的调用
		函数名(形参列表);
有返回值的函数的调用;
		有返回值但不接受返回值
				函数名(形参列表);
		有返回值并接收返回值
			   变量名 = 函数名(形参列表)


注意:
		形参列表与调用的函数的形参列表必须一致(形参类型,形参数量,形参顺序)

1.7函数的存储相关

代码段:存储函数代码。
栈区:存储局部变量、函数参数、返回地址等。
堆区:存储动态分配的内存。
静态区/全局区:存储静态变量和全局变量。
寄存器:用于存储常用或临时数据。
调用约定:规范函数调用的细节。

1.8函数的特殊情况

1.8.1多重调用

在A函数中调用B函数,B函数中调用C函数,.....

1.8.2递归

函数的函数体中调用当前函数

1.9外部函数和内部函数

1.9.1外部函数

定义在函数外的函数(大多数函数),可以在程序的任何一个文件中使用

1.9.2内部函数

使用static关键字定义的外部函数
	语法:
		static 返回值类型  函数名(形参列表)
		{
			函数体
		}
特点:
	该函数只能在该文件中使用

二.变量的类别

1.局部变量

定义位置:函数中

语法:		变量类型   变量名;

默认值:随机数

作用域:当前代码块,即在一个{}中

生命周期:随着当前函数的调用而生成,随着所在函数的结束而销毁

存储位置:
		栈内存

2.全局变量

定义位置: 函数外

语法: 变量类型   变量名;

默认值:0

作用域:当前程序中

生命周期:随着程序的启动而启动,当程序结束时,变量销毁

存储位置:
		静态全局区

3.静态局部变量

定义位置: 函数内

语法:  static 变量类型   变量名;

默认值:0

作用域:当前代码块

生命周期:随着函数的第一次调用而生成,随着所在程序的执行完成而销毁

存储位置:
		静态全局区

4.静态全局变量

定义位置: 函数外

语法:  static  变量类型   变量名;

默认值:0

作用域:当前文件中

生命周期:随着程序的启动而生成,随着所在程序的执行完成而销毁

存储位置:
		静态全局区

5.const修饰变量

特点
	const修饰的变量等于常量
	只能赋值一次
语法:
	const	变量类型  变量名 = 值

三.头文件与源文件

1.头文件

负责声明对应的源文件中的所有内容,如下
								全局声明的变量
								函数的声明
								类的定义
								结构体的定义
								引入的头文件等
								
注意:
		文件的后缀名必须已.h结尾
		头文件名必须和源文件的名称相同(大小写也必须一致)

2源文件

负责实现代码的内容


注意:
	要在对应的源文件中引入头文件
	自己写的头文件用""来引用,系统的使用<>来引用
	区别:
		"":现在指定的文件下来查找头文件,找不到会再去系统路径中去找
		<>:直接去系统的路径下去寻找

3.头文件展开

在预编译过程中,会将头文件进行展开,并且复制到引用的文件当中去
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值