函数分为标准函数和用户本身的函数,也能够分为有参函数和无参数函数。数组
无参函数:函数
类型标识符 函数名()内存
{开发
声明部分编译
语句部分变量
}程序
有参函数:数据
类型标识符 函数名(形式参数列表)static
{兼容
声明部分
语句部分
}
空函数:
类型说明符 函数名(){}:前期开发用,可读性强
形参:定义函数时函数名后面括号中的变量名称
实参:调用一个函数时,函数名括号中的参数
形参在函数没有调用前是不分配内存的,只有函数被调用才分配内存,调用结束后又被释放。实参向形参的数据是值传递,单向传递,只由实参传给形参,而不能由形参传回到实参,在内存中,形参和实参不是同一单元。实参和形参的类型应该相同或赋值兼容。
函数的值:函数返回值,经过return语句得到。若是函数值的类型和return 语句中的表达式值不一致,则以函数类型为准,自动进行类型转换。
函数调用:使用库函数,须要先include进来,调用本身定义的函数,定义在调用前不须要声明,定义在调用后须要声明。函数类型、函数名、参数个数、参数类型和参数顺序必须相同。
数组名能够作实参和形参,传递的是数组首元素的地址。应该在主调函数和被调用函数分别定义数组,在被调用函数中声明形参数组大小不起任何做用,由于编译时对形参数组大小不作检查,只是将实参数组的首地址给形参。有时须要数组大小,则要另设一个形参,传递数组元素的个数。形参和实参共用同一个内存单元,也就是说形参数组各元素的值如发生变化会使实参数组元素同时发生变化。
局部变量:在函数内部定义,只在本函数范围内生效,能够在复合语句中定义变量,这些变量只在复合语句中生效。
和全局变量:在函数外定义,有效范围从定义的位置开始到本源文件结束。在程序所有执行过程当中都占用内存而不是仅在须要时才开辟。
静态存储方式:系统分配固定的存储空间,全局变量
动态存储方式:系统动态分配存储空间,函数形参,未加static声明的局部变量,函数调用时的现场保护和返回地址
Auto声明变量:auto克可省略,不在编译时赋值,而是在函数调用时进行,每调用一次函数,执行一次赋值语句。
Static声明变量:调用结束后不释放,在编译时赋初值,只赋初值一次,每次调用函数再也不赋初值而保留实参函数调用结束的值。Static 声明全局变量,那么只能用于本文件。