定义函数,调用函数,传值(6) 学到了函数首先是函数的定义函数的定义包括 函数头返回类型 函数名参数值{函数体}其次是函数的调用要调用一个函数函数名后面必须要有“”“”起到表示函数调用的重要作用即使没有参数也是需要“”否则编译器不能调用你自己所编写的函数类型.如果有参数则需要给出正确的数量和顺序这些值会按照顺序依次用来初始化函数中的参数下面是一个 求和 的代码int main() {....return 0;} 这一段代码就是我的理解就是 sum(1,10); 里的 110 相当于给 begin 和 end 赋值然后函数体的语句将会执行从而 得出结果我觉得“函数体”相当于计算某一种类型数值的“通用公式”就跟数学的函数类似其次函数知道每一次是哪里调用它会返回到正确的地方。从函数中返回值return 停止函数的执行并送回一个值可直接“return” 或“return 表达式”有了一个返回值后就 1.可以赋值给变量2可以再传递给函数3.甚至可以丢弃PS.一个程序中可以有多个“return” 但是不遵循“单一出口”原则。没有返回值的函数 void 函数名 参数表则不能使用带值的“return” 也可以没有“return”而且调用时不能做返回值的赋值。如果函数有返回值则必须使用带值的“return”没有返回值的函数void 函数名 参数表不能使用带值的return可以没有return调用时不能做返回值的赋值函数先后关系void sum{函数体}int main{sum1,10}像这样把sum写在上面是因为C的编译器自上而下顺序分析你的代码。在看到sum1,10 的时候它需要知道sum的样子也就是sum要几个参数每个参数的类型如何返回什么类型才能知道调用的函数是否正确。函数原型函数头以分号“ ”结尾就构成了函数的原型。函数原型的目的是告诉编译器长什么样名称参数数量及类型返回类型然后 void sum( int a ,int b); 可以写成 void sum int int 因为编译器不会检查参数的名称会检查参数的类型但是习惯于留名称便于人们检查以及理解。调用函数如果函数有参数调用函数时必须传递给它数量类型正确的值。可以传递给函数的值是表达式的结果这包括在C语言中在调用函数时永远只能传值给函数。传值每个函数有自己的变量空间参数也位于这个独立的空间中和其他函数没有关系。像上图中的 第一个 void swapint a,int b; 第二个 void swap int a ,int b ;是两个变量空间我们认为它们是函数和值得关系。本地变量定义在函数内部的变量就是本地变量参数也是本地变量变量的生存期和作用域变量的生存期 从开始到它消亡的这个期间作用域在代码的什么范围内可以访问这个变量也就是这个变量的可以起作用的领域生存期和作用域受限于块内。大括号内也称之为块本地变量的规则一 本地变量定义在块内的1 它可以是定义在函数的块内2 也可以是语句内的块内甚至可以拉一个大括号来定义变量二 程序运行进入这个块之前其中的变量不存在离开这个块其中的变量就解决了三 块外面定义的变量在里面仍然有效四 块里面定义了和外面同名的变量则掩盖了外面的。五 不能在同一个块内定义内同名的变量六 本地变量不会被默认初始化七 参数在进入函数的时候被初始化了