已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参

1、问题描述

若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( D  )

A)函数调用可以作为独立的语句存在

B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中

D)函数调用可以作为一个函数的形参

解析:返回值存在寄存器中, 没有地址, 不能作为形参,但可以作为实参。

2、形参与实参区别

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

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

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

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

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

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

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

5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。

时间: 2024-10-13 02:26:22

已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参的相关文章

scala基础题--函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔

函数可以没有返回值案例,编写一个函数,从终端输入一个整数,打印出对应的金字塔 import scala.io.StdIn object work02 { def main(args: Array[String]): Unit = { println("请输入一个数") var num:Int=StdIn.readInt() val pige=(num:Int)=>{ for (i<-1 to num){ for (j<-1 to num-i){ print("

c++函数的返回值

返回值: 1.main()函数的返回值: 可以将主函数main返回值视为状态指示,返回0位success 2.返回非引用类型: (1)函数的返回值用于初始化在调用函数时创建的临时对象,如果返回类型不是引用,在调用函数的地方将函数的返回值复制给临时对象. (2)在求解表达式的时候,如果需要一个地方存储其运算结果,编译器就会创建一个没有命名的对象. (3) 用函数返回值初始化临时对象与用实参初始化形参是一样. (4)返回值为非引用类型时,返回值可以是局部对象,也可以是求解表达式的结果. 3.返回引用

&lt;10&gt; 无参无返回值+ 无参有返回值函数的定义+有参无返回值函数定义+ 有参有返回值函数定义+函数的参数+函数的参数传递过程

无参无返回值: 1 #include <stdio.h> 2 3 4 /** 5 * 定义一个无参无返值函数 6 * 7 */ 8 void print_line(){ 9 10 printf("-----------------\n"); 11 12 } 13 14 15 16 int main(int argc, const char * argv[]) { 17 //调用函数 18 print_line(); 19 20 return 0; 21 } 无参有返回值函数

初识函数(定义,语法,返回值,参数)

1.什么是函数 函数是对代码块和功能的封装和定义 2.函数的语法和定义 使用def关键字来定义函数,函数的定义语法是 def 函数名(): 函数体 函数名的命名规则和变量一样 函数体就是函数被执行之后需要执行的代码 函数的调用: 写法:函数名(),这个时候函数的函数体会被执行 3.关于函数的返回值 return:返回 1.当程序没写过return,或者写了return但是没写值,不返回任何结果,如果非要接收,接收到的是None 2.当函数写了return 值,有一个返回值 3.当函数写了retu

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double

题目描述 输入一个正数x和一个正整数n,求下列算式的值.要求定义两个调用函数:fact(n)计算n的阶乘:mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double. x - x2/2! + x3/3! + ... + (-1)n-1xn/n! ×输出保留4位小数. 输入 x n 输出 数列和 样例输入 2.0 3 样例输出 1.3333 提示 无 来源 无 1 #include<stdio.h> 2 double fact(int); 3 double mypow(in

函数的返回值和函数调用

目录 函数的返回值 什么是返回值 为什么要返回值 函数调用 函数的返回值 什么是返回值 返回值就是函数内部代码运行后的一个结果 def self_sum(x,y): res = x+y return res num = self_sum(2,6) print(num) 8 为什么要返回值 我们写函数并不是单纯的只是想要一个结果,我们可能还要对函数的运行结果进行下一步处理,此时就需要函数返回一个值了 注意: return是一个函数结束的标志,一个函数内可以有多个return,但只要执行到retur

新手,对函数,函数指针,回调函数, 函数指针作为函数的返回值和block的一些见解

很多初学者,学c语言时,看到函数都觉得难,我也是,一开始觉得函数太难了,后来慢慢就理解了 第一:函数 在c语言中最简单的函数一般有四种: 1, 无返回值, 无参数. 2, 无返回值,有参数. 3, 有返回值,无参数. 4, 有返回值,有参数 1, 无返无参  定义方式:      void 函数名(); 一般不怎么用这种形式的函数,可用来输出,打印 void functionOne() { printf("无返回值,无参数"); // 没有返回值不能写return } int main

Python学习笔记之函数作为返回值、闭包的解释

函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! def lazy_sum(*args): def sum(): ax = 0 for n in args:

初识函数、函数的参数、函数的参数传值、函数的调用形式、函数的返回值

初识函数 内置函数自定义函数 定义无参函数 #只打印执行语句的时候def foo(): print('from the foo')# print(foo.__doc__) #查看函数的文档注释 定义有参函数 #依赖外部传来的值的时候def bar(x,y): print(x) print(y) 定义空函数 #程序开发阶段经常使用,写程序框架的时候def auth(): pass 函数的参数 函数的参数介绍形参和实参的概念 def foo(x,y): #在函数定义阶段,括号内定义的参数->形式参数