函数声明和定义 函数调用 行参实參

1、 函数的定义

返回值类型  函数名(形式参数)

     语句

     return 返回值;

  函数的返回值称为函数的值,只有通过return返回给主调函数

一个函数只能有一个返回值

函数没有返回值也可以通过return返回到主调函数

return后面的语句不再执行

2、 函数调用

3、 行参实參

  行参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用

实參出现在主调函数中,进入被调函数后,实參变量也不能使用。

行参和实參的功能是做数据传送,发生函数调用时,主调函数把实參的值传送给被调函数的行参从而实现主调函数向被调函数的数据传送。

1、行参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。此时,行参只能在函数内部有效,函数调用结束返回主调函数后则不能再使用                该行参。

  2、实參可以是常量、变量、表达式、函数等,无论是何种类型,在进行函数调用时,他们都必须有具体确定的值,以便把这些值传送给行参,因此应预先赋值,输入等办法使实參获得确定的值

  3、实參和行参在数量上、类型、顺序上应严格一致

  4、函数调用中发生的数据传送是单向的,即只能把实參传给行参,而不能把行参的反向地传给实參,因此在函数调用过程中,行参的值发生改变,而实參中的值不会变化。

  5、当行参和实參不是指针类型时,行参和实參是不同的变量,他们的内存位于不同的位置。如果是指针类型变量,传给函数的是实參的地址,在函数内部使用的也是实參的地址,即使用到就是实參本身,所以在函数体内可以改变实參的值

6、数组作为参数,把数组名传?入,即数组的?首地址 。此时,形参和实参实际上是同?一段内存空间

时间: 2024-10-12 09:01:13

函数声明和定义 函数调用 行参实參的相关文章

C++函数声明和定义

声明是告诉编译器一些信息,以协助编译器进行语法分析,避免编译器报错.而定义是告诉编译器生成一些代码,并且这些代码将由连接器使用.即:声明是给编译器用的,定义是给连接器用的.这个说明显得很模糊,为什么非要弄个声明和定义在这搅和?那都是因为C++同意将程序拆成几段分别书写在不同文件中以及上面提到的编译器只从上朝下编译且对每个文件仅编译一次. 编译器编译程序时,只会一个一个源文件编译,并分别生成相应的中间文件(对VC就是.obj文件),然后再由连接器统一将所有的中间文件连接形成一个可执行文件.问题就是

成员函数声明与定义

在C++中函数有声明部分和定义部分,这样可以更清晰的阅读程序,在一个类的内部声明函数,在类的外部写函数的实现. 不然就会报错. #include<iostream.h> class Humn{ private : int height; public : void set_height(int h); int show(); }; void Humn::set_height(int h){ if(h>0 && h<100) { height = h; }else{

Scala函数声明与定义

语法:Dcl ::= ?def? FunDclFunDcl ::= FunSig : TypeDef ::= ?def? FunDefFunDef ::= FunSig [?:? Type] ?=? ExprFunSig ::= id [FunTypeParamClause] ParamClausesFunTypeParamClause ::= ?[? TypeParam {?,? TypeParam} ?]?ParamClauses ::= {ParamClauses} [[nl] ?(? ?

C语言的函数声明,定义,调用以及exit退出

1 #include <stdio.h> 2 #include <stdlib.h> 3 void singing(); 4 int main() 5 { 6 singing(); 7 system("pause"); 8 } 9 10 void singing() 11 { 12 printf("after party~after party~我已然赶不上地铁\n"); 13 } 上述代码段是一个C语言函数的声明过程,首先要声明一个函数(第

函数的声明和定义的区别

函数声明和定义的区别(1) C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的编译系统将无法识别.正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次. 函数声明由函数返回类型.函数名和形参列表组成.形参列表必须包括形参类型,但是不必对形参命名.这三个元素被称为函数原型,函数原型描述了函数的接口.定义函数的程序员提供函数原型,使用函数的程序员就只需要对函

C语言,函数的声明与定义

函数声明与定义 变量: 在讲变量前,先讲一下变量的声明和定义这两个概念. 声明一个变量,意味着向编译器描述变量的类型,但不为变量分配存储空间. 定义一个变量,意味着在声明变量的同时还要为变量分配存储空间,在定义变量的同时为变量初始化. 局部变量:通常只定义不声明. 全局变量:通常在源文件中定义,在头文件中声明. 在一个函数内部定义的变量成为局部变量,它在本函数内有效. 函数中的局部变量,如果不定义类型,其缺省是自动变量auto, 例如:int a,b=2; 其等价于auto int a,b =

JavaScript新手的第一堂函数课:定义与参数(文末福利)

关注微信公众号[异步图书]每周送书 本文包括以下内容: 理解函数为何如此重要 函数为何是第一类对象 定义函数的方式 参数赋值之谜 在本文这一部分讨论JavaScript基础时,也许你会感到惊讶,我们的第一个论点是函数(function)而非对象(object).当然,第3部分会用大量笔墨解释对象,但归根结底,你要理解一些基本事实,像普通人一样编写代码和像"忍者"一样编写代码的最大差别在于是否把JavaScript作为函数式语言(functional language)来理解.对这一点的

javascript函数篇三、函数声明提升

变量提升想必大家都比较熟悉了,那么什么是函数声明提升呢?首先我们来了解下常用的两种函数定义方式: 1. 函数声明 2. 函数表达式 下面来看下两种方式定义函数.函数声明语法定义函数 function fn (n) { return n * 2 } 函数表达式定义函数 var fn = function (n) { return n * 2 } *那么两种方式定义函数有什么区别呢?***对于函数声明与函数表达式两种定义函数的方式,解析器会率先读取函数声明,并使其在执行任何代码之前可用,*这个过程叫

(转载)你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义

你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义 第5章 用函数封装程序功能 在完成功能强大的工资程序V1.0之后,我们信心倍增,开始向C++世界的更深远处探索. 现在,我们可以用各种数据类型定义变量来表达问题中所涉及的各种数据:用操作符连接这些变量对其进行运算:用程序流程控制结构来控制对这些数据的复杂处理过程,最终实现对数据进行处理得到结果,而这就是程序了.但是,随着要处理的问题越来越复杂,程序的代码自然也就会越来越复杂.如果把所有程序代码都放到main()主函数中,主函数也会越