函数组成:函数头(返回类型+函数名+参数表)+函数体
函数头:返回类型 函数名(参数表)
其中()起到了表示函数调用的作用;即使没有参数也要使用()
return停止执行函数并送回一个值;函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过 return 语句返回。
return 语句的一般形式为:return 表达式/return (表达式);
对于无返回值的函数,函数头格式为void+函数名;不能使用带值的return/可以无return;调用时不能做返回值的赋值。
函数原型、参数传递
函数头加;即为函数原型(函数声明),放在main函数前声明函数,这样可以把函数定义放在main函数之后
每个函数有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系
本地(局部)变量
生存期:什么时候这个变量开始出现了,到什么时候它消亡了
作用域:在(代码的)什么范围内可以访问这个变量(这个变量可以起作用)
对于本地变量,这两个问题的答案是统一的:大括号内——块
规则
本地变量是定义在块内的:它可以是定义在函数的块内,也可以定义在语句的块内
,甚至可以随便拉一对大括号来定义变量
程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
块外面定义的变量在里面仍然有效
块里面定义了和外面同名的变量则掩盖了外面的不能在一个块内定义同名的变量,但块内不能定义重名定义(redefination)
本地变量不会被默认初始化,参数在进入函数时会被初始化
C语言不允许函数嵌套定义,即函数定义套函数定义,可以在定义中加函数声明但不能加函数体