定义函数,调用函数,传值(6)

学到了函数,首先是函数的定义

函数的定义包括   函数头:返回类型 函数名(参数值)

                             {

                                      函数体

                            }

其次是函数的调用,要调用一个函数,函数名后面必须要有“()”,“()”起到表示函数调用的重要作用,即使没有参数也是需要“()”,否则编译器不能调用你自己所编写的函数类型.

如果有参数,则需要给出正确的数量和顺序

这些值会按照顺序依次用来初始化函数中的参数

下面是一个 求和 的代码

int main() {       

        ....

   return 0;

}    这一段代码,就是我的理解就是 sum(1,10); 里的  1,10  相当于给 begin 和 end 赋值,然后函数体的语句将会执行,从而 得出结果

我觉得“函数体”相当于计算某一种类型数值的“通用公式”,就跟数学的函数类似

其次,函数知道每一次是哪里调用它,会返回到正确的地方。

从函数中返回值:return 停止函数的执行,并送回一个值,可直接“return” 或“return 表达式”

有了一个返回值后就  1.可以赋值给变量

                                      2可以再传递给函数

                                       3.甚至可以丢弃

PS.一个程序中可以有多个“return” ,但是不遵循“单一出口”原则。

没有返回值的函数: void 函数名 (参数表)

  则不能使用带值的“return” ,也可以没有“return”,而且调用时不能做返回值的赋值。

如果函数有返回值,则必须使用带值的“return”

没有返回值的函数:

void 函数名 (参数表)

不能使用带值的return,可以没有return,调用时不能做返回值的赋值


函数先后关系:

void sum(){                                             

函数体

}

int main(){

sum(1,10);

}

像这样把sum写在上面,是因为:C的编译器自上而下顺序分析你的代码。在看到sum(1,10); 的时候,它需要知道sum的样子,也就是sum()要几个参数,每个参数的类型如何,返回什么类型,才能知道调用的函数是否正确。


函数原型:

函数头,以分号“ ;”结尾,就构成了函数的原型。

函数原型的目的是告诉编译器长什么样:名称,参数(数量及类型),返回类型

然后  void sum( int a ,int b);  可以写成 void sum (int  , int   );

因为编译器不会检查参数的名称,会检查参数的类型,但是习惯于留名称,便于人们检查以及理解。


调用函数:

如果函数有参数,调用函数时必须传递给它数量,类型正确的值。

可以传递给函数的值是表达式的结果,这包括:

在C语言中在调用函数时,永远只能传值给函数。

传值:

每个函数有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系。

像上图中的 第一个 void swap(int a,int b);    第二个 void swap (int a ,int b );是两个变量空间

我们认为它们是函数和值得关系。


本地变量:

定义在函数内部的变量就是本地变量,参数也是本地变量

变量的生存期和作用域:

变量的生存期 :从开始到它消亡的这个期间

作用域:在(代码的)什么范围内可以访问这个变量(也就是这个变量的可以起作用的领域)

生存期和作用域受限于块内。

大括号内也称之为块

本地变量的规则:

一 本地变量定义在块内的

1 它可以是定义在函数的块内

2 也可以是语句内的块内,甚至可以拉一个大括号来定义变量

二 程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就解决了

三 块外面定义的变量在里面仍然有效

四 块里面定义了和外面同名的变量则掩盖了外面的。

五 不能在同一个块内定义内同名的变量

六 本地变量不会被默认初始化

七 参数在进入函数的时候被初始化了

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值