形参 订阅
自定义函数中的“形参”全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。 展开全文
自定义函数中的“形参”全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。
信息
特    点
实参和形参可以重名
实质 
不是实际存在变量
中文名
形式参数
又    称
虚拟变量
形式参数简介
是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在VB中,出现在Sub过程和Function过程的形参表中的变量名、数组名,称为形式参数,过程被调用之前,并为其分配内存,其作用是说明自变量的类型和形态以及在过程中所“扮演”的角色。形参即函数的自变量,其初值来源于函数的调用。只有在程序执行过程中调用了函数,形参才有可能得到具体的值,并参与运算求得函数值。可见形参表相当于变量说明,但应特别注意:此处只能使用类型标识符,而不能直接使用类型。在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且必须要有确定的值。
收起全文
精华内容
下载资源
问答
  • 形参

    2019-04-28 22:26:00
    '''形参种类:1)位置形参 -- 普通位置形参 -- 默认值形参 -- 可变长位置形参2)关键字形参 -- 有默认值关键字形参 -- 无默认值关键字形参 -- 可变长关键字形参'''def fn1(a, b, *, x, y): pass# fn1()# 位置形参与...
    '''
    形参种类:
    1)位置形参
    -- 普通位置形参
    -- 默认值形参
    -- 可变长位置形参

    2)关键字形参
    -- 有默认值关键字形参
    -- 无默认值关键字形参
    -- 可变长关键字形参
    '''


    def fn1(a, b, *, x, y):
    pass


    # fn1()
    # 位置形参与关键字形参的分水岭 *

    # 重点:
    # 位置实参只能给位置形参进行传值
    # fn1(10, 20, 30, 40) # 只有两个位置,给了四个位置
    # 关键字实参可以给位置形参与关键字形参进行传值
    # fn1(x=30, y=40, a=10, b=20)



    # part2
    # 两个带默认值的形参
    def fn2(a=10, *, x=20):
    print(a, x)
    fn2(100, x=200)
    # 总结:
    # 1.有默认值的参数可以不用传值
    # 2.*前有默认值的叫默认值参数,属于位置形参,可以被位置及关键字实参进行传值
    # 3.*后有默认值的叫有默认值的关键字形参,属于关键字形参,只能被关键字实参进行传值

    # def get_p(name, sex='男'):
    # pass
    # get_p('Bob', '女')


    # part3
    def fn3(a, b=10, *, x, y=20, z):
    print(a, b, x, y, z)
    fn3(100, x=200, z=300)
    # 总结:
    # 1.没有默认值的必须传参,有默认值的可以传也可以不传
    # 2.位置有值的必须出现在无值之后,关键字顺序不做要求

    # part4
    def fn4(a, b=10, *args, x, **kwargs):
    print(a, b, x)
    print(args)
    print(kwargs)
    fn4(10, 20, 30, x=100, y=200, z=300)
    # 总结:
    # 1.可变长是用来接收未接收完的值(接收0到n个):
    # -- *args用来接收所以没有接收完的位置(只能接收位置实参)
    # -- **kwargs用来接收所以没有接收完的关键字(只能接收关键字实参)
    # 2.*args必须出现在所以位置参数之后,**kwargs必须出现在所以参数之后

    # 假设第一个位置永远是参数name
    def func4(*args, **kwargs):
    name = args[0] # 将name抽出来

    def func44(name, *args, **kwargs):
    # name 可以直接接收,省了抽出来的过程
    pass



    # part5
    def fn5(*args, **kwargs):
    print(args, kwargs) # args=(10, 20) kwargs={'x': 100, 'y': 200}

    def fn55(*args, **kwargs):
    print(args, kwargs) # args=(10, 20) kwargs={'x': 100, 'y': 200}
    fn5(*args, **kwargs) # *args就会把元组打散传递,**kwargs就会把字典打散传递

    fn55(10, 20, x=100, y=200)

    # 容器类型可以打散传值
    def temp(*args, **kwargs):
    print(args, kwargs)
    ls = [1, 2, 3, 4, 5]
    dic = {'a': 1, 'b': 2}
    temp(*ls, **dic)

    转载于:https://www.cnblogs.com/qiangyuzhou/p/10787374.html

    展开全文
  • 形参和实参的区别

    万次阅读 多人点赞 2018-06-15 17:10:14
    实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 形参...

    本文转载:https://blog.csdn.net/qq_33187168/article/details/50346465

    实参(argument):
      全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。      

    形参(parameter):
    全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

    形式参数:形参是函数被调用时用于接收实参值的变量。

    根据实际需要可有可无。没有形参时,圆括号也不可省;多个参数之间应用逗号分隔。参数包括参数名和参数类型。

    形参的类型说明可有如下两种格式:

      int max(int  a,int b)/*形参的类型在形参表中直接说明*/

        {  return (a>b?a:b);}     

     或

       int max(a,b)

       inta,b;         /*形参的类型在函数体前、函数名后说明*/

       { return(a>b?a:b); }

    前者为标准格式,后者为传统格式,通常用前者。


    形参和实参的区别

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

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

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

    1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回

    主调函数后则不能再使用该形参变量。 

    2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形

    参。 因此应预先用赋值,输入等办法使实参获得确定值。 

    3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生类型不匹配的错误。 

    4.函数调用中发生的数据传送是单向的 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值

    发生改变,而实参中的值不会变化。

    5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该

    函数运行结束的时候形参被释放,而实参内容不会改变

    如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参

    本身。所以在函数体内部可以改变实参的值。


    展开全文
  • 指针形参与引用形参

    千次阅读 2018-12-07 17:43:28
    看了很多关于指针形参和引用形参的解答,不尽人意。 指针形参使用情形:(1)标准的C中,C没有引用(2)形参可以为空 引用形参使用情形:(1)形参不可以为空,总指向某个对象 指针形参:指针的行为和其他非引用...

    看了很多关于指针形参和引用形参的解答,不尽人意。

    指针形参使用情形:(1)标准的C中,C没有引用(2)形参可以为空

    引用形参使用情形:(1)形参不可以为空,总指向某个对象

    指针形参:指针的行为和其他非引用类型一样,当执行指针拷贝操作时,拷贝的是指针的值,拷贝之后,两个指针是不同的指针,如:

    int n = 0, i = 42;

    int *p = &n,*q = &i;

    *p = 42; //你值改变

    p = q;//p现在指向i,但是i和n的值都不变

    优点是可以明确的表示函数所操纵的是指向数组元素的指针,而不是数组本身,而且可以使用任意长度的实参数组来调用函数;其缺点是函数体不能依赖于数组的长度,容易造成数组内存的越界访问,从而产生错误的结果或导致程序崩溃。

    引用形参:优点是函数体依赖于数组的长度是安全的;使用引用避免拷贝,拷贝大的类型对象或者容器对象比较低效,甚至有的类类型(包括IO类型在内)根本就不支持拷贝操作。当某种类型不支持拷贝操作时,函数只能通过引用形参访问该类型的对象。比如使用单例模式时,构造函数和拷贝构造函数此时为私有化,当其对象作为参数传递时,应使用引用形参

    函数不能改变实参指针变量的值,但可以改变实参指针变量所指向变量的值。

    展开全文
  • const形参和非const形参

    2019-10-03 09:45:22
    我们知道const形参是为了,是为了保证函数内部不会去修改形参。 而C++为了与C兼容,const形参与非const形参,在函数重载时,会被认为是同一个函数,所以就不会被编译器认为是重载,而是重复声明/定义了。 而对于...

    我们知道const形参是为了,是为了保证函数内部不会去修改形参。

    而C++为了与C兼容,const形参与非const形参,在函数重载时,会被认为是同一个函数,所以就不会被编译器认为是重载,而是重复声明/定义了。

    而对于const引用形参和非const引用形参,其实是可以被认为是重载函数的。

    对于const指针形参和非const指针形参,也是可以被认为是重载函数。

    转载于:https://www.cnblogs.com/howarddeng/p/9638434.html

    展开全文
  • 默认形参

    2019-08-21 19:45:04
    在C++中,函数的形参可以设置默认值,调用函数时,如果没有提供实参,则使用默认形参,如果形参只有一部分设置了默认形参,则必须靠右排列 函数的默认形参是在编译阶段确定的,因此只能使用常量、常量表达式、全局...
  • 函数形参

    2018-08-27 21:28:51
    函数形参 函数形参的定义方式: 位置形参 星号元组形参 命名关键字形参 双星字典形参 位置形参: 语法: def 函数名(形参名1,形参名2,...): 语句块 自己理解:按照位置顺序依次一对一接收的形参 ...
  • 自己总是认为指针形参和引用形参的区别很小,他们都可以对实参进行改变,想了解一下他们的具体区别???
  • 函数的形参(非引用形参、指针形参、引用形参) 一、非引用形参  voidadd1(intv1)  {  v1+=1;  }  这是最普通的形参方式,当函数被调用时,实参的副本初始化形参,函数并没有访问调用所传递的实参,...
  • 一、非引用形参  voidadd1(intv1)  {  v1+=1;  }  这是最普通的形参方式,当函数被调用时,调用拷贝构造函数,生产一个新的实例,函数所有的修改,都是对新的实例的修改;函数退出之前,会调用析构函数,回收...
  • /对实参无影响 }这是最普通的形参方式,形参仅仅为实参的一个副本,对形参的任何操作不会修改实参的值。例中对v1的操作只是修改了实参的一个副本。实参不变 int *p=&n; add2(p);//p为指向n的指针 或者直接add...
  • 引用形参 指针形参

    2013-10-25 14:04:21
    引用形参 *是去引用运算符,或称之为间接引用运算符 首先看一下 普通形参 int add1(int a) { return a+1; } void main() { int num = 10; int num2; num2 = add1(num); }   在这种情况下...
  • C++的形参

    2020-12-04 20:34:04
    非引用形参1.1 普通形参1.1.1 非const形参1.1.2 const形参1.2 指针形参1.2.1 非const指针形参1.2.2 const指针形参2.引用形参 1.非引用形参 1.1 普通形参 1.1.1 非const形参 传入的形参形式为voidfunc(intx)void \...
  • 数组形参

    千次阅读 2018-03-05 11:43:42
    1.尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式//尽管形式不同,但这三个print函数时等价的//每个函数都有一个const int*类型的形参void print(const int*);void print(const int[]);void...
  • 形参和返回值

    2021-03-24 09:59:55
    形参和返回值1、 形参和返回值1.1 类名作为形参和返回值1.2 抽象类名作为形参和返回值1.3 接口名作为形参和返回值 1、 形参和返回值 1.1 类名作为形参和返回值 方法的形参是类名,其实需要的是该类的对象 方法的...
  • 实参、形参

    2020-11-11 23:16:35
    实参形参 注意: 实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中占有不同的存储单元,实参无法得到形参的值。
  • 当你在定义一个方法的时候,比如 void setter...此时a就是实参 实参a把他的值传递给形参i基本数据类型实参传递给形参的是值对象实参传递给形参的是对象的引用====================================================在...
  • 形参与实参

    2021-04-18 17:06:52
    形参变量: 形参变量是功能函数里的变量,只有在被调用的时候才分配内存单元,调用结束后立即释放。所以形参只在函数内部有效。 实参变量: 实参可以是常量,变量,表达式,函数等等,但无论是何类型,在进行函数...
  • 形参实参

    2016-07-05 21:06:43
    本文以实例阐述了C++中形参与实参的区别,有助于读者加深对于C++形参与实参的认识。 形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量...
  • 形参

    千次阅读 2019-08-15 10:59:21
    c++形参里总是会有&,传递引用,可以在函数内部更改传入变量的值 c一般是通过*指针来做到 #include <iostream> #include<stdio.h> #include <bits/stdc++.h> #include<iostream> ...
  • C++ 引用形参和指针形参

    千次阅读 2015-09-26 12:48:18
    从引用形参和非引用形参的区别来看,似乎任何时候使用引用形参都指针好, 既少了实参到形参拷贝的开消,也同样可以操作(非const )实参。 那指针形参有没有什么优点呢? 1. 指针形参比引用形参更能清晰的向函数...
  • 函数的参数详解 形参与实参 形参及形式参数,就是在定义函数是括号中指定的参数(本质就是一个名字) 实参及实际参数,指的是在调用函数是传入的参数)(本质就是一个值) 在调用函数是就会把形参和实参绑定在一起...
  • 指针形参

    2016-07-07 11:07:02
    函数的形参可以是指针,此时将复制实参指针。与其他非引用类型的形参一样,该类形参的任何改变也仅作用于局部副本。如果函数将新指针赋给形参,主调函数使用的实参指针的值没有改变。 事实上,被赋值的指针只影响对...
  • 指针形参,对指针变量的拷贝,可以在函数中改变指针所指的变量值,但是无法改变传进的指针值 void reset(int *a)//形参类型是指针类型,因为指针的特性就是间接找到变量 { *a=0; } int i=42; reset(&i);//取...
  • 引用形参

    2015-09-18 16:43:23
    引用形参---直接关联其所绑定对象,而并非是对象的副本。 从C语言背景到C++程序员习惯通过传递指针来实现对实参的访问,在C++中,使用引用形参则更安全和更自然。 引用形参作用: 1、通过引用形参返回额外...
  • 1、形参与实参形参也是一个变量,被调用时生成存储空间,调用结束后释放存储空间;形参与实参之间的存储空间不同int main(int argc, const char * argv[]) {//主函数可以有形参,也可以没有形参@autoreleasepool {...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,718
精华内容 20,687
关键字:

形参