一段功能代码被称为函数。
1.为了避免代码的重复,复用性,开发不用从头开始。
2.模块化的思想。高内聚低耦合,功能越单一越好,对外部依赖越少越好。
函数的定义与使用
1.如果设计函数的时候没有给定函数返回值的,默认是int。如果不需要返回值,可以用void。
2.return是返回到函数的调用处,return后的代码不会被执行。
3.传递过程中,需要保证参数个数一致,类型匹配。
变量的作用域
作用域:变量定义后,可以被访问的区域。
局部作用域:变量作用域在离定义该变量最近的大括号内。当发生调用后,作用域发生变化,在被调函数内部,主调函数内部定义的变量都不能使用。
全局作用域:在同一个工程中,在任意位置都可以使用的变量。
放在所有函数外面就是全局变量。
在同一作用域中,标识符(变量名,数组名,函数名)不能同名。
生命周期
变量从开辟内存空间开始到变量内存空间回收结束,这个时间段为生命周期。
局部变量
1.函数内部的变量
2.函数的参数
3.函数内部定义的变量,一定要给初值,否则就是随机值
在定义开始的地方申请内存,执行到函数结束,空间回收
全局变量
1.在所有函数之外定义的变量
2.可以给初值,如果不给初值则系统负责初始化为0
全局变量,在运行开始前就要把空间开辟好,在程序结束后释放空间。
变量的隐藏
变量的存储类型
auto int a; register int a; extern int a; static int a;1.auto 自动存储类型。局部变量,可以省略。定义变量时,内存空间自动开辟,离开作用域自动释放到内存的栈区(stack)
2.register 寄存器。建议编译器把某个数据存储在cpu某个寄存器中。
3.extern 外部变量。目的是为了让其他变量可以使用。
4.static 静态 可以修饰变量和函数。放在内存的数据区
(1)修饰局部变量:变量的生命周期是整个程序运行的周期,变量在静态区分配,只初始化一次,函数调用结束后变量不销毁,下次进入时保持上次的值,且作用域仍局限于该函数内。
(2)修饰全局变量,将其作用域限制在当前文件中,只能在本文件中使用,防止多文件编译时发生命名冲突。与extern会冲突。