精华内容
下载资源
问答
  • 形参和实参的区别和联系 1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。 2) 实参可以是常量、变量、表达式、函数等,无论实参是何...

    形参和实参的区别和联系

    1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

    2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

    3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

    4) 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

    展开全文
  • 在构造函数后引用函数的话实际的参数必须和...没有出现任何的报错,可笔者想,如果我们将变量b在声明的时候声明为singe或者double型呢,这样形参和实参数据类型就不一致了,这样能够执行吗,说做就做,笔者把代码进

    在构造函数后引用函数的话实际的参数必须和构造函数时的形参数据类型一致,为此笔者做了一个实验,代码如下:


    笔者首先构造了一个求绝对值的函数zabs(),然后将整型变量b传入函数,计算其绝对值,程序执行结果如下:


    没有出现任何的报错,可笔者想,如果我们将变量b在声明的时候声明为singe或者double型呢,这样形参和实参的数据类型就不一致了,这样能够执行吗,说做就做,笔者把代码进行了些许修改。


    然后我们执行该段代码:

    执行后报出如下错误:


    可见形参和实际参数数据类型必须一致是对的,哪怕值相等数据类型不一样都不行。

    展开全文
  • 1. 关于形参和实参的说明 ① 在函数被调用之前,形参不占内存 ② 实参可以是常量、变量或表达式 ③ 必须指定形参的类型 ④ 实参与形参类型一致 ⑤ 实参对形参的数据传递是"值传递",即单向传递2. 函数返回值 ...
    7f55b7df5da25caf0839d96f5db7cbb0.png

    1. 关于形参和实参的说明

    ① 在函数被调用之前,形参不占内存

    ② 实参可以是常量、变量或表达式

    ③ 必须指定形参的类型

    ④ 实参与形参类型应一致

    ⑤ 实参对形参的数据传递是"值传递",即单向传递

    2. 函数返回值

    如果想让函数返回一个值,在函数中就要用return语句来获得,在定义函数时也要对函数值指定类型,如果不指定,默认返回整型。

    3. 函数调用

    1 注意在函数调用时实参和形参的个数、类型应一一对应。对实参表求值的顺序是不确定的,有的系统按自左至右,有的系统则按自右至左的顺序。这一点要注意。

    2 函数调用的方式:函数语句,函数表达式,函数参数

    3 如果主调函数和被调函数在同一文件中,并且主调函数在前,那么一般要在主调函数中对被调函数进行说明。除非: 被调函数的返回值类型为整型或字符型 被调函数出现在主调函数之前。

    4 对函数的说明和定义是不同的,定义是指对函数功能的确立,包括指定函数名,函数值类型,形参及其类型、函数体等。说明则只是对已定义的函数返回值类型进行说明,只包括函数名、函数类型以及一个空的括弧,不包括形参和函数体。

    5 c语言允许函数的递归调用(在调用一个函数的过程中又出现直接或间接的调用该函数本身)。

    4. 数组作为函数参数

    1 数组元素作为函数参数 和一般变量相同

    2 数组名作参数应该在主调和被调函数分别定义数组,形参数组的大小可以不定义。注意:数组名作参数,不是单向传递。

    3多维数组作参数,在被调函数中对形参数组定义时可以省略第一维的大小说明,但不能省略第二维或更高维的说明。

    5. 局部变量和全局变量

    从变量作用域角度分,变量可分为局部变量和全局变量。

    1)内部变量(局部变量)

    在一个函数内定义,只在函数范围内有效的变量。

    2)外部变量(全局变量)

    在函数外定义,可以为本文件其它函数所共用,有效范围从定义变量的位置开始

    到本文件结束。建议尽量少使用全局变量,因为它在程序全部执行过程中都占用

    资源,而且使函数的通用性降低了。如果在定义外部变量之前的函数要想使用该

    外部变量,则应在该函数中用extern作外部变量说明。

    2、当全局变量与局部变量同名时,局部变量将在自己作用域内有效,它将屏蔽同名的全局变量。

    6. 动态存储变量与静态存储变量

    从变量值存在的时间(生存期)角度来分,可分为静态存储变量和动态存储变量。静态存储指在程序运行期间给变量分配固定的存储空间,动态存储指程序运行期间根据需要动态的给变量分配存储空间。

    C语言中,变量的存储方法分为两大类:静态存储类和动态存储类,具体包括:自动的(auto),静态的(static),寄存器的(register),外部的(extern)。

    1、局部变量的存储方式

    函数中的局部变量如不作专门说明,都之auto的,即动态存储的,auto可以省略。局部变量也可以定义为static的,这时它在函数内值是不变的。静态局部变量如不赋初值,编译时系统自动赋值为0,动态局部变量如不赋初值,则它的值是个不确定的值。C规定,只有在定义全局变量和局部静态变量时才能对数组赋初值。为提高执行效率,c允许将局部变量值放在寄存器中,这种变量叫register变量,要用register说明。但只有局部动态变量和形式参数可以作为register变量,其它不行。

    2、全局变量的存储方式

    全局变量在函数外部定义,编译时分配在静态存储区,可以在程序中各个函数所引用。多个文件的情况如何引用全局变量呢?假如在一个文件定义全局变量,在别的文件引用,就要在此文件中用extern对全局变量说明,但如果全局变量定义时用static的话,此全局变量就只能在本文件中引用了,而不能被其它文件引用。

    3、存储类别小结

    从作用域角度分,有局部变量和全局变量

    局部变量:自动变量,即动态局部变量(离开函数,值就消失)

    静态局部变量(离开函数,值仍保留)

    寄存器变量(离开函数,值就消失)

    (形参可定义为自动变量和寄存器变量)

    全局变量:静态全局变量(只限本文件引用)

    全局变量(允许其它文件引用)

    从存在的时间分,有静态存储和动态存储

    动态存储:自动变量(本函数内有效)

    寄存器变量(本函数内有效)

    形参

    静态存储:静态局部变量(函数内有效)

    静态全局变量(本文件内有效)

    全局变量(其它文件可引用)

    从变量值存放的位置分

    静态存储区:静态局部变量

    静态全局变量

    全局变量

    动态存储区:自动变量和形参

    寄存器内:寄存器变量

    7. 内部函数和外部函数

    内部函数:只能被本文件中的其它函数调用,定义时前加static,内部函数又称静态函数。

    外部函数:可以被其它文件调用,定义时前加extern,如果省略,则隐含为外部函数,在需要调用此函数的文件中,一般要用extern说明。

    展开全文
  • 目录软件环境系统UbuntuKylin 14.04软件Python 2.7.4IPython 4.0.0参数的多类型传值一般而言,形参和实参的数量要一致。但是当实参为序列数据类型时,我们可以将多个实参传递到形参中。我们可以在实参列表中以 * ...

    前言

    上一篇主要介绍了Python函数的参数类型,本篇继续学习Python函数多类型传值。

    目录

    软件环境

    系统

    UbuntuKylin 14.04

    软件

    Python 2.7.4

    IPython 4.0.0

    参数的多类型传值

    一般而言,形参和实参的数量要一致。但是当实参为序列数据类型时,我们可以将多个实参传递到形参中。

    我们可以在实参列表中以 * 或者 ** 标识符来限制传入的实参必须为 Tuple/List 或 Dict 的类型对象。

    向函数传递Tuple

    其实不定长参数本质是将冗余的实参转换为Tuple数据类型后再传递给函数。下面的例子传递了一个Tuple类型实参给函数,和使用不定长参数效果是一样的。需要注意的是,不定长参数需要放到函数形参列表的后端,而Tuple类型形参可以随意放置。

    In [33]: %pycat func1Test.py

    #!/usr/bin/env python

    #Filename:func1Test.py

    import sys

    def printYourEnter(input1,input2):

    print input1

    print input2

    for var in input2:

    print var

    if __name__ == '__main__':

    enter1 = raw_input("Ple enter your living cities:")

    enter2 = raw_input("ple enter your name:")

    enter3 = raw_input("Ple enter your age:")

    tuple1 = (enter2,enter3)

    printYourEnter(enter1,tuple1) # 这里没有限制实参类型,可以传入任意类型对象

    In [34]: run func1Test.py

    Ple enter your living cities:BJ

    ple enter your name:Jmilk

    Ple enter your age:23

    BJ

    ('Jmilk', '23')

    Jmilk

    23

    注意:向函数传度Tuple还有一种形式:

    In [91]: %pycat tupleTest.py

    #!/usr/bin/env python

    #Filename:tupleTest.py

    def test(x,y):

    print x*y

    if __name__ == '__main__':

    t = (2,3)

    test(*t) # 限制只能传入 Tuple 类型对象

    In [92]: run tupleTest.py

    6

    在调用函数的时候,使用 * 标识符:标识将 t 元组中的元素以迭代的方式传递给形参。但是这种时候要求元组元素的个数与形参的个数要一致。

    向函数传递List

    向函数传递List类型对象,与传递Tuple类型对象类似。

    In [61]: %pycat func1Test.py

    #!/usr/bin/env python

    #Filename:func1Test.py

    def printYourEnter(input1,x,y):

    print input1

    print x

    print y

    if __name__ == '__main__':

    enter1 = raw_input("Ple enter your living cities:")

    enter2 = raw_input("ple enter your name:")

    enter3 = int(raw_input("Ple enter your age:"))

    li1 = [enter2,enter3]

    printYourEnter(enter1,*li1)

    In [62]: run func1Test.py

    Ple enter your living cities:BJ

    ple enter your name:Jmilk

    Ple enter your age:23

    BJ

    Jmilk

    23

    向函数传递Dictionary

    想函数传递Dic数据类型需要注意下面几点:

    1.形参名与dic中的key相同,形参会自左往右的匹配第一个与自己同名的key,并将此key映射的value传递到形参。

    2.若有形参在dic中并没有找到匹配的key,则会报错。

    3.若dic中有多个同名的key,则自右往左的优先级来匹配。

    4.形参与dic的key:value顺序无关。

    注意:若dic中有key不能与形参匹配时,需要人为的指定dic中key给形参,并传递其value给形参,否则会报错。本质是将dic中的value值先取出来再传递到函数形参。

    functionName(dic[x][,...])

    Example:

    In [45]: %pycat func1Test.py

    #!/usr/bin/env python

    #Filename:func1Test.py

    def printYourEnter(input1,cities,name,age):

    print input1

    print cities

    print name

    print age

    if __name__ == '__main__':

    enter1 = raw_input("Ple enter your living cities:")

    enter2 = raw_input("ple enter your name:")

    enter3 = int(raw_input("Ple enter your age:"))

    dic = {'cities':enter1,'name':enter2,'age':enter3}

    printYourEnter('a',**dic)

    In [46]: run func1Test.py

    Ple enter your living cities:BJ

    ple enter your name:Jmilk

    Ple enter your age:23

    a

    BJ

    Jmilk

    23

    当限制向函数传递一个dic数据类型时,在调用函数时要使用 ** 来标识是一个映射,即传递一个字典类型的对象。而且在函数定义时,函数的形参必须与字典的Key一致,才可以实现将字典的value传递给函数中对应的形参。

    也可以写成下面这种形式:

    In [49]: %pycat func1Test.py

    #!/usr/bin/env python

    #Filename:func1Test.py

    def printYourEnter(input1,dic):

    print input1

    print dic['cities']

    print dic['name']

    print dic['age']

    if __name__ == '__main__':

    enter1 = raw_input("Ple enter your living cities:")

    enter2 = raw_input("ple enter your name:")

    enter3 = int(raw_input("Ple enter your age:"))

    dic = {'cities':enter1,'name':enter2,'age':enter3}

    printYourEnter('a',dic)

    In [50]: run func1Test.py

    Ple enter your living cities:BJ

    ple enter your name:Jmilk

    Ple enter your age:23

    a

    BJ

    Jmilk

    23

    Jmilk

    展开全文
  • java 程序中 一般存储在3个地方: 1:静态存储区:比如:内存在程序编译的时候就分配好了 静态变量等 2:栈 各种原始数据...1:形参和实参 必须保持参数类型一致 或者符合类型隐含类型装换规则 2: 形参
  • 1. 关于形参和实参的说明 ① 在函数被调用之前,形参不占内存 ② 实参可以是常量、变量或表达式 ③ 必须指定形参的类型 ④ 实参与形参类型一致 ⑤ 实参对形参的数据传递是"值传递",即单向传递2. 函数返回值 ...
  • 形参和实参 函数的形参和实参具有以下特点: 1.形参变量只有在被调用的时候,才会分配内存单元,在调用结束是,即刻释放所分配的内存单元。,因此,形参只有在函数内部有效,函数调用结束返回主调函数后则不能再使用...
  • 1. 关于形参和实参的说明① 在函数被调用之前,形参不占内存② 实参可以是常量、变量或表达式③ 必须指定形参的类型④ 实参与形参类型一致⑤ 实参对形参的数据传递是"值传递",即单向传递2. 函数返回值如果想让...
  • C++面经个人背诵版

    2021-01-23 17:52:01
    2、形参和实参的区别 ① 形参,分配内存空间,函数内部有效 ② 实参必须要有确定值 ③ 数据传递,是否会改变 ④ 在类型、数量、顺序上一致 ⑤ 形参实参不是指针类型时的情况 补充:传值、传引用、传指针 3、const...
  • 复习函数!

    2019-04-17 21:32:38
    (2):形参和实参的特点 1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存, 所以形参变量只有在函数内部有效,不能在函数外部使用。 2) 实参可以是常量、变量、表达式、函数等,无论实参是何...
  • Python笔记(一)

    2020-11-03 20:59:43
    函数:是一个被封装起来的具有...2.命名参数:实参的顺序可以和形参一致,执行函数时使用 (形参=实参) 3.默认值参数:定义函数时,给形参默认值,当没有实参时执行函数会使用默认值,没有默认值时会报错 默认值形参必须
  • Note_20150814_C++_Function

    2015-08-19 09:04:51
    11:03 Here I got several function note about c++. 在函数中定义的形参,在未出现函数调用的时候他们并不占用存储单元,只有函数调用的时候,他们才会被分配存储...这个值的数据类型必须和被调用函数的类型保持一致
  • 笔记8

    2020-06-10 14:31:09
    方法名(数据类型 形参实参 对象名.方法名(实参实参和形参传递数值有2种 值传递 引用传递 值传递 实参和形参互不影响 构造方法创建对象时才会调用 构造方法是类的一个特殊方法,用于创建对象时初始化对象...
  • 形式参数实际参数 函数参数用于函数间数据的...3实参可以是常量变量表达式 4实参形参类型必须一致字符型整型可以互相匹配 5C语言中实参形参数据传递是值传递既单向传递它仅由参数的对应位置确定与名字无
  • 构造函数的特征: 1.构造函数名与类名相同; 2.构造函数没有返回值类型,也不是void;...构造方法可以有多个,创建对象时实参的个数和类型应与类中定义的构造函数的形参的个数和类型一致。 不能在构造函数...
  • 引用就是给变量起别名,别名的数据类型必须和原名的数据类型一致。 数据类型 &别名 = 原名; 引用必须初始化,并且初始化后不可以改变,比如以下语法都是错误的: int &b; //引用没有初始化 int &b ...
  • B、实参形参的个数必须相等,且实参形参类型必须对应一致; C、当形参是变量时,实参可以是常量、变量或表达式; D、如函数调用时,实参形参都为变量,则这两个变量不可能共享同一内存空间; 答案:B;...
  • Java 中参数简单介绍

    2020-06-30 19:50:33
    存在的问题: 1.可复用性差 2.可读性差 3.可维护性差 ...注意:实参和形参 个数顺序必须保持一致 返回值:被调用者返回给调用者的数据 void 没有返回值 八种基本数据类型 引用数据类型 注意:返回值的数
  • 方法名():方法名一定要带小括号,可以没有形参。如果有形参,格式:数据类型 形参名 。形参只声明不赋值,形参的值由类或对象调用...要求:数据类型和顺序必须一致 实参:就是实实在在的数据 在static修饰的方法中可
  • C语言---day04

    2018-07-25 00:03:52
    一、函数 1.参数 函数在使用的时候,一个很明显特征就是使用带括号(),在我们使用的时候,里面可能还会有一些数据或者是变量,这就是参数。...这里需要注意的就是实参和形参类型、数目必须一致。 注意事项: 1...
  • block与函数

    千次阅读 2015-10-01 10:26:20
    block是1个数据类型.... 实参代码段的要求必须和形参的要求一致.如果形参是1个无返回值无参数的block 那么实参的代码段也必须要符合这个要求.. 在传值的时候. 先将符合要求的代码段存储在1个block变量之
  • Java基本方法命名

    千次阅读 2018-09-19 14:50:28
    实参的数量,数值,及数据类型和次序,必须和形参一致; java进行方法调用的时候,数据传递是值传递,传递的都是数据的副本 基本数据类型传递的是值的copy值 引用数据类型传递的是对象引用的copy值,所指的是同...
  • 提高代码的重用性调用:SELECT 函数名(实参列表) (实参和形参的 个数、类型 必须一致)FROM 表(根据需要:函数的参数用到表中的字段)过程:调用该函数,把函数的逻辑语句执行完,将它的返回值显示出来。分类:1.单行...
  • 提高代码的重用性调用:SELECT 函数名(实参列表) (实参和形参的 个数、类型 必须一致)FROM 表(根据需要:函数的参数用到表中的字段)过程:调用该函数,把函数的逻辑语句执行完,将它的返回值显示出来。分类:1.单行...
  • 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。  函数的形参和实参具有以下特点: 1.形参变量只有在被调用时才分配内存单元,...
  • 参数

    2019-12-24 17:04:34
    函数调用时的数量、位置、参数类型必须和定义时的一致 默认参数 函数定义时,为参数设置一个默认值,当函数调用时,没有传入这个参数值,直接使用这个默认值;定义函数时,默认参数必须指向不可变对象;如果指向可...
  • 成员方法-参数 (1)参数 ...调用方法或构造器时,如果定义了参数,那么需要传入数据数据的顺序、类型、数量必须和定义时一致。 名称解释: 形参,定义方法时小括号里面的参数。 实参,调用方法时传入的数
  • 要求:序列中的元素个数必须和形参的个数一致 def fn1(a,b,c): print(a, b, c) x = (1,2,3) # 元组数据 y = [4,5,6] # 列表数据 z = {'a':7, 'b':8, 'c':9} # 字典数据 fn1(*x) # 元组解包 * fn1(*y) # 列表解包...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

形参和实参数据类型必须一致