精华内容
下载资源
问答
  • 2020-11-20 15:19:51

    不可以,因为在调用函数时需要对形参分配内存空间以用于接收实参传递的值,所以形参不可以是表达式,也不能在形参处对其赋值,比如 int result(int a=3)是不可以的。
    但是实参可以是表达式。
    (摘自百度知道)

    更多相关内容
  • 形参可以是常量变量表达式 C. 实参可以为任意类型 D. 形参应与其对应的实参类型一致更多相关问题()是调整商事关系的法律规范。18.下列不属于“政善治”的观点是17、周易是哪个朝代的易经?称为可变脂的是衡量一...

    【单选题】在C语言中以下不正确的说法是

    A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型 D. 形参应与其对应的实参类型一致

    更多相关问题

    ()是调整商事关系的法律规范。

    18.下列不属于“政善治”的观点是

    17、周易是哪个朝代的易经?

    称为可变脂的是

    衡量一个人道德水平高低的主要标志是看其道德行为。

    普通民众参与法律实践培养法治思维的方式和途径有很多,但不包括()。

    测定血清中ALT活性可反映哪种组织器官的功能

    密码子存在于

    某一核酸有如下的碱基组成:A=23%,G=22%,C=39%,T=16%。该核酸可能是

    18、“神头岭”战役中我方旅长的名字是( )

    1分子葡萄糖经无氧氧化可净生成几分子ATP

    γ-氨基丁酸来自哪种氨基酸

    脂肪酸彻底氧化的产物是

    某一核酸有如下的碱基组成:A=23%,G=22%,C=39%,T=16%。该核酸可能是

    γ-氨基丁酸来自哪种氨基酸

    ()是调整商事关系的法律规范。

    DNA的基本组成单位不包括

    关于同工酶的叙述正确的是

    下列不是糖异生原料的是

    脂肪酸彻底氧化的产物是

    一段单链DNA模板序列为5,-ATTGCTA-3,,合成与其互补的子链DNA序列为

    2.太极拳的练功要领不包括:

    NAD+分子结构中含有的维生素是

    称为可变脂的是

    最普遍进行的生物转化第二相反应是代谢物与

    含蛋白质比例最多的血浆脂蛋白是

    乙酰辅酶A的去路不包括

    司法活动的最高价值追求是()。

    衡量一个人道德水平高低的主要标志是看其道德行为。

    由法律直接规定继承人的范围、继承顺序、遗产分配原则的财产继承制度是()。

    能使血糖降低的激素是

    丙酮酸参与下列哪种物质代谢过程

    20、孙子用哪一种物象来比喻他的战术思想( )

    能使血糖降低的激素是

    多核苷酸链中核苷酸的连接方式是

    展开全文
  • 例如我在使用Unity的MenuItem特性时,报了错"特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式" ​​​​​​​ ​​​​​​​ 经过几次定位,原因是因为我的字符串不是用const定义...

    说明:

           例如我在使用Unity的MenuItem特性时,报了错"特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式"

            

           

    ​​​​​​​       经过几次定位,原因是因为我的字符串不是用const定义的,对于特性来说,实参必须是常量值,而我定义的是变量;另外加readonly声明也是没有用的,原因可以参见:C#知识系列:readonly与const的区别

    public static string CustomEidorMenu = "CustomEidorMenu";
    public static readonly string CustomEidorMenu = "CustomEidorMenu";

    ​​​​​​​       经过试验下面的一行代码也是不行的,在C#中,只有"+"进行的字符串拼接字符串常量是可以在编译期间就确定的,其他的都是动态拼接

    [MenuItem($"{EditorConfig.CustomEidorMenu}/window")]

     

    所以解决方案如下,编译通过

    public const string CustomEidorMenu = "CustomEidorMenu";
    [MenuItem(EditorConfig.CustomEidorMenu + "/window")]

     

    展开全文
  • python函数的参数

    千次阅读 2020-12-06 13:08:21
    实参即在调用函数时,括号内传入的值,值可以是常量变量表达式或三者的组合:1:实参是常量res=my_min(1,2)2:实参是变量a=1b=2res=my_min(a,b)3:实参是表达式res=my_min(102,10my_min(3,4)...

    一 形参与实参介绍

    函数的参数分为形式参数和实际参数,简称形参和实参:

    形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。

    实参即在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合:

    1:实参是常量

    res=my_min(1,2)

    2:实参是变量

    a=1

    b=2

    res=my_min(a,b)

    3:实参是表达式

    res=my_min(102,10my_min(3,4))

    4:实参可以是常量、变量、表达式的任意组合

    a=2

    my_min(1,a,10*my_min(3,4))

    在调用有参函数时,实参(值)会赋值给形参(变量名)。在Python中,变量名与值只是单纯的绑定关系,而对于函数来说,这种绑定关系只在函数调用时生效,在调用结束后解除。

    二 形参与实参的具体使用

    2.1 位置参数

    位置即顺序,位置参数指的是按顺序定义的参数,需要从两个角度去看:

    在定义函数时,按照从左到右的顺序依次定义形参,称为位置形参,凡是按照这种形式定义的形参都必须被传值

    def register(name,age,sex): #定义位置形参:name,age,sex,三者都必须被传值

    print('Name:%s Age:%s Sex:%s' %(name,age,sex))

    register() #TypeError:缺少3个位置参数

    在调用函数时,按照从左到右的顺序依次定义实参,称为位置实参,凡是按照这种形式定义的实参会按照从左到右的顺序与形参一一对应

    def register(name,age,sex): #定义位置形参:name,age,sex,三者都必须被传值

    print('Name:%s Age:%s Sex:%s' %(name,age,sex))

    register() #TypeError:缺少3个位置参数

    2.2 关键字参数

    在调用函数时,实参可以是key=value的形式,称为关键字参数,凡是按照这种形式定义的实参,可以完全不按照从左到右的顺序定义,但仍能为指定的形参赋值

    register(sex='male',name='lili',age=18)

    Name:lili Age:18 Sex:male

    需要注意在调用函数时,实参也可以是按位置或按关键字的混合使用,但必须保证关键字参数在位置参数后面,且不可以对一个形参重复赋值

    register('lili',sex='male',age=18) #正确使用

    register(name='lili',18,sex='male') #SyntaxError:关键字参数name=‘lili’在位置参数18之前

    register('lili',sex='male',age=18,name='jack') #TypeError:形参name被重复赋值

    2.3 默认参数

    在定义函数时,就已经为形参赋值,这类形参称之为默认参数,当函数有多个参数时,需要将值经常改变的参数定义成位置参数,而将值改变较少的参数定义成默认参数。例如编写一个注册学生信息的函数,如果大多数学生的性别都为男,那完全可以将形参sex定义成默认参数

    def register(name,age,sex='male'): #默认sex的值为male

    ... print('Name:%s Age:%s Sex:%s' %(name,age,sex))

    ...

    定义时就已经为参数sex赋值,意味着调用时可以不对sex赋值,这降低了函数调用的复杂度

    register('tom',17) #大多数情况,无需为sex传值,默认为male

    Name:tom Age:17 Sex:male

    register('Lili',18,'female') #少数情况,可以为sex传值female

    Name:Lili Age:18 Sex:female

    需要注意:

    默认参数必须在位置参数之后

    默认参数的值仅在函数定义阶段被赋值一次

    x=1

    def foo(arg=x):

    ... print(arg)

    ...

    x=5 #定义阶段arg已被赋值为1,此处的修改与默认参数arg无任何关系

    foo()

    1

    默认参数的值通常应设为不可变类型

    def foo(n,arg=[]):

    arg.append(n)

    return arg

    foo(1)

    [1]

    foo(2)

    [1, 2]

    foo(3)

    [1, 2, 3]

    每次调用是在上一次的基础上向同一列表增加值,修改如下

    def foo(n,arg=None):

    if arg is None:

    arg=[]

    arg.append(n)

    return arg

    foo(1)

    [1]

    foo(2)

    [2]

    foo(3)

    [3]

    2.4 可变长度的参数(与*的用法)

    参数的长度可变指的是在调用函数时,实参的个数可以不固定,而在调用函数时,实参的定义无非是按位置或者按关键字两种形式,这就要求形参提供两种解决方案来分别处理两种形式的可变长度的参数

    2.4.1 可变长度的位置参数

    如果在最后一个形参名前加号,那么在调用函数时,溢出的位置实参,都会被接收,以元组的形式保存下来赋值给该形参

    def foo(x,y,z=1,args): #在最后一个形参名args前加号

    ... print(x)

    ... print(y)

    ... print(z)

    ... print(args)

    ...

    foo(1,2,3,4,5,6,7) #实参1、2、3按位置为形参x、y、z赋值,多余的位置实参4、5、6、7都被*接收,以元组的形式保存下来,赋值给args,即args=(4, 5, 6,7)

    1

    2

    3

    (4, 5, 6, 7)

    如果我们事先生成了一个列表,仍然是可以传值给*args的

    def foo(x,y,*args):

    ... print(x)

    ... print(y)

    ... print(args)

    ...

    L=[3,4,5]

    foo(1,2,*L) # L就相当于位置参数3,4,5, foo(1,2,L)就等同于foo(1,2,3,4,5)

    1

    2

    (3, 4, 5)

    注意:如果在传入L时没有加*,那L就只是一个普通的位置参数了

    foo(1,2,L) #仅多出一个位置实参L

    1

    2

    ([1, 2, 3],)

    如果形参为常规的参数(位置或默认),实参仍可以是*的形式

    def foo(x,y,z=3):

    ... print(x)

    ... print(y)

    ... print(z)

    ...

    foo([1,2]) #等同于foo(1,2)

    1

    2

    3

    如果我们想要求多个值的和,args就派上用场了

    def add(*args):

    ... res=0

    ... for i in args:

    ... res+=i

    ... return res

    ...

    add(1,2,3,4,5)

    15

    2.4.2 可变长度的关键字参数

    如果在最后一个形参名前加号,那么在调用函数时,溢出的关键字参数,都会被接收,以字典的形式保存下来赋值给该形参

    def foo(x,kwargs): #在最后一个参数kwargs前加

    ... print(x)

    ... print(kwargs)

    ...

    foo(y=2,x=1,z=3) #溢出的关键字实参y=2,z=3都被接收,以字典的形式保存下来,赋值给kwargs

    1

    {'z': 3, 'y': 2}

    如果我们事先生成了一个字典,仍然是可以传值给kwargs的

    def foo(x,y,**kwargs):

    ... print(x)

    ... print(y)

    ... print(kwargs)

    ...

    dic={'a':1,'b':2}

    foo(1,2,dic) #dic就相当于关键字参数a=1,b=2,foo(1,2,**dic)等同foo(1,2,a=1,b=2)

    1

    2

    {'a': 1, 'b': 2}

    注意:如果在传入dic时没有加**,那dic就只是一个普通的位置参数了

    foo(1,2,dic) #TypeError:函数foo只需要2个位置参数,但是传了3个

    如果形参为常规参数(位置或默认),实参仍可以是**的形式

    def foo(x,y,z=3):

    ... print(x)

    ... print(y)

    ... print(z)

    ...

    foo({'x':1,'y':2}) #等同于foo(y=2,x=1)

    1

    2

    3

    如果我们要编写一个用户认证的函数,起初可能只基于用户名密码的验证就可以了,可以使用kwargs为日后的扩展供良好的环境,同时保持了函数的简洁性。

    def auth(user,password,kwargs):

    ... pass

    ...

    2.5 命名关键字参数

    在定义了kwargs参数后,函数调用者就可以传入任意的关键字参数key=value,如果函数体代码的执行需要依赖某个key,必须在函数内进行判断

    def register(name,age,**kwargs):

    ... if 'sex' in kwargs:

    ... #有sex参数

    ... pass

    ... if 'height' in kwargs:

    ... #有height参数

    ... pass

    ...

    想要限定函数的调用者必须以key=value的形式传值,Python3提供了专门的语法:需要在定义形参时,用作为一个分隔符号,号之后的形参称为命名关键字参数。对于这类参数,在函数调用时,必须按照key=value的形式为其传值,且必须被传值

    def register(name,age,*,sex,height): #sex,height为命名关键字参数

    ... pass

    ...

    register('lili',18,sex='male',height='1.8m') #正确使用

    register('lili',18,'male','1.8m') # TypeError:未使用关键字的形式为sex和height传值

    register('lili',18,height='1.8m') # TypeError没有为命名关键字参数height传值。

    命名关键字参数也可以有默认值,从而简化调用

    def register(name,age,*,sex='male',height):

    ... print('Name:%s,Age:%s,Sex:%s,Height:%s' %(name,age,sex,height))

    ...

    register('lili',18,height='1.8m')

    Name:lili,Age:18,Sex:male,Height:1.8m

    需要强调的是:sex不是默认参数,height也不是位置参数,因为二者均在后,所以都是命名关键字参数,形参sex=’male’属于命名关键字参数的默认值,因而即便是放到形参height之前也不会有问题。另外,如果形参中已经有一个args了,命名关键字参数就不再需要一个单独的*作为分隔符号了

    def register(name,age,*args,sex='male',height):

    ... print('Name:%s,Age:%s,Args:%s,Sex:%s,Height:%s' %(name,age,args,sex,height))

    ...

    register('lili',18,1,2,3,height='1.8m') #sex与height仍为命名关键字参数

    Name:lili,Age:18,Args:(1, 2, 3),Sex:male,Height:1.8m

    2.6 组合使用

    综上所述所有参数可任意组合使用,但定义顺序必须是:位置参数、默认参数、args、命名关键字参数、kwargs

    可变参数args与关键字参数kwargs通常是组合在一起使用的,如果一个函数的形参为*args与kwargs,那么代表该函数可以接收任何形式、任意长度的参数

    def wrapper(*args,**kwargs):

    ... pass

    ...

    在该函数内部还可以把接收到的参数传给另外一个函数(这在4.6小节装饰器的实现中大有用处)

    def func(x,y,z):

    ... print(x,y,z)

    ...

    def wrapper(args,**kwargs):

    ... func(args,**kwargs)

    ...

    wrapper(1,z=3,y=2)

    1 2 3

    按照上述写法,在为函数wrapper传参时,其实遵循的是函数func的参数规则,调用函数wrapper的过程分析如下:

    位置实参1被接收,以元组的形式保存下来,赋值给args,即args=(1,),关键字实参z=3,y=2被接收,以字典的形式保存下来,赋值给kwargs,即kwargs={'y': 2, 'z': 3}

    执行func(args,kwargs),即func((1,), {'y': 2, 'z': 3}),等同于func(1,z=3,y=2)

    提示: *args、**kwargs中的args和kwargs被替换成其他名字并无语法错误,但使用args、kwargs是约定俗成的。

    展开全文
  • 1.标识符命名规则: 定义 就是给类,接口,方法,变量等起名字的字符序列 组成规则 英文大小写字母数字$和_ ...形参可以是常量,变量表达式 实参可以为任何类型 形参应与其对应的实参类型一
  • def sayhi( ): #函数名print('hello world')sayhi( )#调用函数 , 调用函数时要加上括号(), 不加的话调用的是定义函数名的那个内存地址示例:#普通代码:a,b = 5,8 #这句话的意思是给两个变量a,b 分别赋值5和8, 即...
  • 以下关于函数叙述中错误的是 A函数未被调用时系统将不为形参分配内存单元 B实参与形参的个数应相等且实参与形参的类型必须对应一致 C当形参是变量时实参可以是常量变量表达式 D形参可以是常量变量表达式 ....
  • C语言:11、实参/形参

    2020-11-18 11:21:08
    在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量变量表达式。而有参函数在没有发生调用之前,函数里面的定义的参数就是形参。 数据传递编辑 在调用函数过程中,系统会把实参的值传递...
  • 常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 时期不同: 编译时常量 运行时常量 定义方式不同: 符号常量 (#...
  • 函数:一个工具,随调随...函数参数:参数分形参、实参形参:函数定义时括号内的参数实参:函数调用时括号内的参数形参相当于变量,实参相当于变量的值。定义时:def func(a, b, c):passa, b, c为形参调用时:func(1,...
  • 常量表达式

    万次阅读 2017-11-20 22:51:42
    字面值:是一个不能改变的值,如数字、字符、字符串等。单引号内的是字符字面值,双引号内的是字符串字面值。...字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 一个对象(或表达式)是不
  • 实参、形参、局部变量和全局变量

    千次阅读 2020-09-15 16:53:39
    在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量变量表达式。 在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时,函数名后面括号中的参数称为...
  • constexpr & 常量表达式
  • c语言中形参与实参: 形参 form parameter ...//在函数中,形参可以当作是一个局部变量。 if ( a>b ) return a; else return b; } 函数调用 int main() { int a=3,b=5 ; printf( "max=%d\n" , max(a,b) )
  • C语言中的实参和形参

    千次阅读 2018-11-24 21:57:46
    个人理解,如有错误还请指正 实参:传递给被调用函数的值;...2.实参可以是常量变量表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。...
  • constexpr和常量表达式

    千次阅读 2017-11-13 10:59:22
    常量表达式 常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 const int a = 3;//a是常量表达式...
  • 常量final [修饰符] 类型标识符 常量名= (直接)常量;变量[修饰符] 类型标识符 变量名=常量;
  • 1、形参和实参 1.1 形参的含义及使用 1.2 实参的含义及使用 2、局部变量和全局变量 2.1 变量作用域的概念 2.2 局部变量 2.3 全局变量 2.4 修改全局变量
  • 实参,形参是什么?区别?

    千次阅读 2020-07-14 11:12:54
    double cube(double x) { return x*x*x; } void main() { double m;...1.实参可以是常量变量表达式,函数等,但都必须是确定的值。 2.形参用于接收实参值的变量。 3.参数传递的过程:将实参的e值赋
  • C语言函数的形参和实参

    千次阅读 2021-05-20 14:41:20
    原标题:C语言函数的形参和实参上一个例程中在进行函数调用的时候,不需要任何参数传递,所以函数定义和调用时括号内都是空的,但是更多的时候我们需要在主调函数和被调用函数之间传递参数。在调用一个有参数的函数...
  • constexpr变量、constexp函数和常量表达式 常量表达式: 值不会改变且在编译过程中就可得到结果 const int max = 20;//max是常量表达式 const int min = max-19;//min是常量表达式 constexpr用途:便于编译器验证...
  • 2:实参可以是常量变量表达式、方法。 3:形参是一个局部变量,其初始值为相应实参的值。 命令行参数 命令行参数指命令行中给定的参数。 可变参数 Java可变参数是1.5版本的新特性,当定义的方法不
  • C语言中函数传递(实参 形参

    万次阅读 多人点赞 2016-07-06 20:34:19
    形参:在被调函数形参表中的变量名、数组名,该过程在...实参可以是变量名、数组名、常数或表达式。在过程调用 传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但它们的数据类型
  • 在主函数中计算N值,N值是由用户输入的参数来确定的。 主函数会调用Direct函数,N为函数的一个形参。...这条语句定义,但会报错“表达式必须含有常量值”。 也试过利用new,但没有解决,想请教一下大家,谢谢。
  • C 语言编程 — 变量常量

    千次阅读 2020-04-02 20:15:59
    文章目录目录前文列表变量与常量变量变量的类型变量的声明变量的定义变量的初始化与赋值常量整型常量浮点型常量字符型场景字符串常量常量的定义作用域 前文列表 《C 语言编程 — 数据类型》 变量与常量 C 中有两种...
  • PTA教育超市《函数部分》理论题

    千次阅读 2021-01-19 05:07:20
    练习5.1 1.1在C语言中,可以将主调函数放在被调函数的后面,省略函数的声明。√ 解析:注意函数定义和函数声明的区别; ...1-3函数的实参和形参可以是变量常量表达式。× 解析:实参可以是
  • C语言中常量变量和函数

    千次阅读 2021-01-20 21:16:03
    1、 常量 常量指定的是在软件编程过程中不能给赋值且值不能被改变的量。一般包括数字、字符、字符串常量等。...在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。 符号常量在使用之前必...
  • c++中不允许使用变量作为数组的长度定义数组,必须为常量值,c++中所有的内存需求都是在程序执行前通过定义的常量来确定的。 但是 我们有时候需要在程序运行时才能确定内存需求的变量值,例如所需值是由用户输入的...
  • 02_星仔带你学Java之变量常量、字面量、数据类型

    千次阅读 多人点赞 2022-03-08 20:33:40
    一、字面量、常量变量以及表达式 1、字面量 2、常量 3、变量 4、表达式 二、数据类型 1、数据类型概念 2、基本数据类型 3、引用数据类型 三、基本数据类型转换 自动类型转换,也称为“隐式类型转换 强制类型转换,...
  • C语言常量 变量与作用域

    千次阅读 2022-03-22 20:17:52
    变量常量一、常量与符号常量constdefine二.变量变量定义命名规则1.变量定义语句2.变量赋初值typedef 一、常量与符号常量 整型常量 以下是合法的整型常量表示形式: 256,-75,0(十进制整型常量) 0237,045,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,361
精华内容 16,144
关键字:

形参可以是常量变量表达式