精华内容
下载资源
问答
  • 2019-08-20 10:53:41

    正确答案: B 你的答案: D (错误)

    地址传递
    单向值传递
    由实参传给形参,再由形参传回实参
    传递方式由用户指定

    个人认为:这里的简单变量应该是指内置类型,内置类型数据在传入函数时,使用值传递方式的效率要高于引用传递和指针传递,因此编译器会采用效率最高的方式来实现参数传递,所以选B(当然也允许用户更改),事实上包括STL中的迭代器和函数对象也都是默认采用值传递的方式来实现的。
    至于其他类型如自定义类,如果采用值传递则会涉及拷贝构造函数和析构函数的调用问题,通常会影响性能,所以一般采用引用和指针传递的形式,通常交由用户决定。
    一点题外话:有人说设计自定义类型的最高境界是让他无限接近内置类型,不无道理。
    编辑于 2018-04-19 21:35:36

    更多相关内容
  • C语言是一种面向过程的语言,它的程序执行过程是按逻辑顺序执行,在函数函数体的定于位置与程序执行无关,该...当调用fun函数时,系统会给形参变量栈中分配相应的内存空间,即整形变量a,和指针变量p,同时将实参...

    C语言是一种面向过程的语言,它的程序执行过程是按逻辑顺序执行,在函数的函数体的定于位置与程序执行无关,该函数必须在程序执行过程中调用才能执行。

    1a66da4c227aad86c03e0b536db5fb42.png

    上图中:main函数中调用的函数fun(),若在main函数的执行过程中(包括main函数调用的函数内部调用)没有调用fun()函数,则该函数永远不会被执行。

    当调用fun函数时,系统会给形参变量在栈中分配相应的内存空间,即整形变量a,和指针变量p,同时将实参赋值给对应的形参,即使定义了相同的全局变量a或者指针变量p。但他们代表的不是相同的内存空间,所以他们互不影响。

    即如:

    a=10;p=”abc”;

    a=i;p=p;

    当该fun函数结束时,该函数内部所申请分配的空间被释放。

    函数可能在程序中多次调用,因为形参需要用来存储实参对应的值,正是由于实参值具有不确定性,因此不能指定形参的值。函数的参数传递是赋值过程,则形参必须有特定的存储空间才能接受实参的值。在函数的实参只要满足赋值形参的赋值要求都可以。

    正常的运行结果:

    adf0f56eebcaa5d2684042e27cd3f08b.png

    若函数形参指定为确定的值而不是对应的变量则源文件编译不能通过。

    展开全文
  • 关于函数调用时形参与实参的情况

    千次阅读 2020-03-01 00:46:18
    实际参数:调用函数时函数名后括号中的表达式! 1.形参未被调用,不占存储单元。形参只调用过程中占用存储单元。形参定义必须指定类型! 2.实参是常量。变量或者表达式!要与形参类型一致!而且实参要有确定的...

    关于函数调用时形参与实参的情况

    首先什么是形参与实参

    形式参数:定义函数时函数名后括号中的变量名!
    实际参数:调用函数时函数名后括号中的表达式!

    1.形参未被调用时,不占存储单元。形参只在调用过程中占用存储单元。形参定义时必须指定类型!
    2.实参是常量。变量或者表达式!要与形参类型一致!而且实参要有确定的值,占用储存单元,在调用过程中实参将值赋给形参!
    3.C中实参对形参数据传递时时单向传递。在存储单元中是不同的单元

    三种情况

    情况一

    #include<stdio.h>
    void swap(int p,int q) { //p,q为形参
        int temp = p;
        p = q;
        q = temp;
    }
    int main() {
        int a,b;
        scanf("%d%d",&a,&b);//a,b为实参
        swap(a,b);
        printf("%d %d",a,b);
    }

    在这里插入图片描述
    在上面第三条性质中实参对形参数据传递时时单向传递,在存储单元中是不同的单元,所以在swap函数中并不能改变a,b的值

    情况二

    #include<stdio.h>
    void swap(int *p,int *q) { //p,q为形参
        int temp = *p;
        *p = *q;
        *q = temp;
    }
    int main() {
        int a,b;
        scanf("%d%d",&a,&b);//a,b为实参
        swap(&a,&b);
        printf("%d %d",a,b);
    }

    在这里插入图片描述
    要想在swap函数里改变a,b值则使用指针

    情况三

    #include<stdio.h>
    void swap(int *p,int *q) { //p为形参
    	printf("p = %d q = %d\n",p,q);
    	p = q;
    	printf("p = %d q = %d\n",p,q);
    }
    int main() {
        int a,b;
        scanf("%d%d",&a,&b);//a为实参
        swap(&a,&b);
        printf("&a = %d &b = %d\n",&a,&b);
        printf("a = %d b = %d\n",a,b);
    }

    大家先思考一下结果会是什么,该情况是我们在函数实参与实参使用时经常出的BUG

    在这里插入图片描述

    注:(以上图的地址为例)在理解该情况实参与形参的指针与地址传递时

    //在主函数开始swap函数传入a,b地址
    p = &a; //该操作使a与p变量公用一块地址
    q = &b; //该操作使b与q变量公用一块地址
    //在swap函数里
    p = q //使p与q公用一块地址,而p已经不与a用一块地址了,所以p的任何改变都与a无关,而与b有关

    所以大家在函数中应注意地址改变与数值改变区别

    展开全文
  • 如下为示例说明:1、python函数的应用一般需要:先定义、后调用: 2、如果函数定义调用之后,执行将报错: 3、函数中调用函数不受此限制: 4、但是语句对函数调用,必须函数调用之后,包括直接调用的函数调用的...

    java开发者在定义类中的方法时,不会关心方法的定义相对于调用语句的位置。

    但是python中需要注意:

    函数必须先定义、后调用(函数调用函数例外)。

    如下为示例说明:

    1、python函数的应用一般需要:先定义、后调用:

    892d33c8fc97d28933c28b5e5efd2c56.png

    2、如果函数定义在调用之后,执行将报错:

    058b0517ae2db90465f7dbace88d7136.png

    3、函数中调用函数不受此限制:

    caccb00fdcb935830382dc50d5247b99.png

    4、但是语句对函数调用,必须在函数调用之后,包括直接调用的函数调用的其他函数也必须在调用语句之前,否则报错:

    7cc235cecd7512a4e578691866acdc81.png

    补充知识:Python的列表等变量的声明必须要在函数定义与函数调用之前

    源代码

    —–这个代码作用是调用Linux应用终端操作来实现计算,并把计算结果取出来,组成相似矩阵,有五组值也就是有五组相似矩阵,这个是我做蛋白质结构预测用到的,自己写的,分享出来给大家,如有疑惑,欢迎评论区交流。 # 此代码主要为说明问题,后面我会贴上完整代码以及数据。

    def cal_simi(n):

    file = os.popen('cd '+path[n-1]+';ls').readlines()

    RMSD_simi = []

    TMscore_simi = []

    MasSubscore_simi = []

    GDTTSscore_simi = []

    GDTHAscore_simi = []

    for fileName1 in file:

    temp1 = [];temp2=[];temp3=[];temp4=[];temp5=[]

    for fileName2 in file:

    comm = 'cd /home/stern/Desktop/TMscore;' + 'sudo ./TMscore ' + path[n-1] + fileName1[:-1] +' '+ path[n-1] + fileName2[:-1]

    # storge the result of the command in data

    data = os.popen(comm).readlines()

    temp1.append(data[14][32:38]);temp2.append(data[16][14:20]);temp3.append(data[17][14:20])

    temp4.append(data[18][14:20]);temp5.append(data[19][14:20])

    RMSD_simi.append(temp1)

    TMscore_simi.append(temp2)

    MasSubscore_simi.append(temp3)

    GDTTSscore_simi.append(temp4)

    GDTHAscore_simi.append(temp5)

    p1 = np.median(RMSD_simi);p2 = np.median(TMscore_simi);p3 = np.median(MasSubscore_simi)

    p4 = np.median(GDTTSscore_simi);p5 = np.median(GDTHAscore_simi)

    for i in range(len(file)):

    RMSD_simi[i][i] = p1

    TMscore_simi[i][i] = p2

    MasSubscore_simi[i][i] = p3

    GDTTSscore_simi[i][i] = p4

    GDTHAscore_simi[i][i] = p5

    return RMSD_simi,TMscore_simi,MasSubscore_simi,GDTTSscore_simi,GDTHAscore_simi

    Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']

    path = ['/home/stern/Desktop/1abv_/','/home/stern/Desktop/1af7_/','/home/stern/Desktop/1cqkA/',

    '/home/stern/Desktop/1csp_/','/home/stern/Desktop/1dcjA/','/home/stern/Desktop/256bA/']

    # fsadf

    RMSD_simi1 = []

    TMscore_simi1 = []

    MasSubscore_simi1 = []

    GDTTSscore_simi1 = []

    GDTHAscore_simi1 = []

    RMSD_simi1,TMscore_simi1,MasSubscore_simi1,GDTTSscore_simi1,GDTHAscore_simi1=cal_simi(1)

    print RMSD_simi1[1][1]

    print TMscore_simi1[2][2]

    print MasSubscore_simi1[3][3]

    print GDTTSscore_simi1[4][4]

    print GDTHAscore_simi1[5][5]

    运行结果

    —–运行结果,错误如下,如果把# fsadf后面的列表的声明提到函数定义的前面,则错误就没有了,列表的声明必须要在函数的调用之前,这个就更不用讲了,如果你不在函数调用之前的话,会提示列表不存在。。 Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']

    File "", line 30

    Xn = ['1abv_','1af7_','1cqkA','1csp_','1dcjA','256bA']

    ^

    SyntaxError: invalid syntax

    >>> path = ['/home/stern/Desktop/1abv_/','/home/stern/Desktop/1af7_/','/home/stern/Desktop/1cqkA/',

    ... '/home/stern/Desktop/1csp_/','/home/stern/Desktop/1dcjA/','/home/stern/Desktop/256bA/']

    以上这篇Python函数必须先定义,后调用说明(函数调用函数例外)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

    展开全文
  • Matlab作为一款专业性极强的商业数学软件,将诸多的...调用函数:首先我们需要Matlab中打开New M-File新建M文件;再创建一个自定义函数test_data,并将test_data函数文件放在当前文件夹内;命令行窗口中输入简单...
  • Python如何main中调用函数内的函数

    万次阅读 2019-06-07 00:37:45
    Python如何main中调用函数内的函数 一般Python中函数中定义的函数是不能直接调用的,但是如果要用的话怎么办呢? 一般情况下: def a():#第一层函数 def b():#第二层函数 print('打开文件B') b()#第二...
  • Java中如何调用函数和自定义函数

    千次阅读 2021-02-12 09:00:49
    调用函数方法:对象名.函数名需要实例化对象,后调用2.自定义32313133353236313431303231363533e4b893e5b19e31333365663433函数:结构为:[方法修饰符] ([]){方法体}有以下几种函数:方法有2种修饰符1)有public、...
  • 题目:有 5 个人坐一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后 问第一个人,他说是 10...
  • 构造函数调用函数

    千次阅读 2019-07-19 15:44:02
    所以构造函数中完全可以调用函数,只是调用的语义不符预期,A()中的this类型是A *指针,我们期望调用的是B::fun(),但是实际上调用的是A::fun()。 原因也很简单,仔细过一下构造函数的执行流程即可。调用B...
  • 1.直接函数调用 这是最简单、最直观的方式: def test(): print("This is a test") test() 2.使用partial()函数 的内置库中functools,有一个专用于生成偏函数的偏函数partial。 def power(x, n): s = 1 ...
  • VUE中函数调用函数

    千次阅读 2020-04-17 16:55:08
    VUE中函数调用函数VUE中函数调用函数 VUE中函数调用函数 有时候,需要一个函数中,调用另外一个函数,采用这种方法 this.$options.methods.onQuery(‘queryForm’); ...
  • 如何用函数指针调用函数

    千次阅读 2020-07-10 09:23:48
    先举一个用函数指针调用函数的例子 int Func(int x); /*声明一个函数*/ int (*p) (int x); /*定义一个函数指针*/ p = Func; /*将Func函数的首地址赋给指针变量p*/ int Func(int x); 这一句是声明一个函数,使我们...
  • Python函数外部调用函数内部的变量有两种方法:1.使用return;2.使用global声明变量; 1.使用return: # 函数外部调用函数内部变量两种方法:1.使用return 2.使用global声明变量 def test(): a = '11111' ...
  • 转载自 标准的先函数定义,后函数调用 def add1(a,b): ...#事实上,我们在调用函数2的时候,一样是遵循先定义后调用的准则 def add2(a,b): return add3(a,b) def add3(a,b): return a+b print add2(1,2) ...
  • 如何HTML中调用JavaScript函数

    千次阅读 2021-06-12 10:23:47
    如何HTML中调用JavaScript函数HTML文档中有很多方法可以调用JavaScript函数,这也不是一件容易的事。首先,我们使用了最简单的方法之一来调用HTML文档中的JavaScript函数这种方法中,我们将HTML文档的...
  • html 页面加载时调用函数的三种方法

    千次阅读 2021-01-07 10:03:16
    // 第一种 ... alert('页面加载展示'); }); // 第二种 $(document).ready(function () { alert('页面加载展示'); }); // 第三种 window.onload = function () { alert('页面加载展示'); }
  • C语言——如何调用函数

    千次阅读 多人点赞 2021-02-01 15:14:06
    C语言——如何调用函数 一、案例: 二、函数的认知 #include <stdio.h> #include <stdlib.h> int prepare() { printf("出门前准备\n"); printf("洗漱\n"); printf("穿衣\n"); return 0; } int ...
  • JS如何外部调用函数内部的函数

    万次阅读 热门讨论 2019-03-21 19:11:32
    外部调用函数内部的函数是行不通的。因为每执行环境通过作用域链只能一级一级的往上查询函数,不能往下级搜索函数。 举个栗子: var a=10; function numberone(){ var b=20; function numbertwo(){ var c=30; ...
  • 2016-03-31 回答函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题我们的思考方式是“怎么干”,而函数函数式编程的思考方式是我要“干什么”。 至于函数式编程的特点暂不总结,我们直接拿例子来...
  • void function1(int x) { x=5; } void function2(int *x) .../*因为调用时候,首先是执行int x=a的操作,函数里面依然是对x=5赋值,没有改变a */ function2(&a); //此时a=5 /*因为调用时候,首先是...
  • 函数调用时的形参与实参

    万次阅读 多人点赞 2018-04-15 18:31:11
    大多数人进行学习编程,对于函数调用时函数时的传递的内容是一个头大的问题。本人学习后有了以下的见解请大家共同学习,若有失误,请指出! 基础知识 1.系统堆栈(即栈区域)和堆区域。 1.1、栈(Stack)是...
  • 调用静态函数时,是否调用构造函数

    千次阅读 2019-02-26 15:12:35
    调用静态函数时,不会调用构造函数
  • c++调用函数

    千次阅读 2018-12-12 20:02:29
    由主函数调用函数,子函数还可以再调用其它子函数调用其它函数函数称为主调函数。被其他函数调用函数称为被调函数。一个函数很可能既调用别的函数又被其它函数调用函数调用的形式 类型说明符 函数名(含...
  • C语言 函数参数和调用函数

    千次阅读 多人点赞 2019-04-14 08:39:07
    调用函数时,有两种向函数传递参数的方式: 传值调用 默认情况下,C 语言使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数 swap() 定义如下: /* 函数定义 */ ...
  • 自动生成函数调用关系图

    热门讨论 2013-09-06 20:21:17
    自动生成c++函数调用关系图,里面包含了所有要用到的软件,一站式服务; 通过本人亲测的使用总结; 还有使用到的配置文件(c++的),实在不会配置可以直接使用; 改一改配置文件,应该还可以生成c,java,c#语言的调用...
  • MATLAB函数调用

    千次阅读 2021-04-15 19:17:44
    MATLAB:函数调用 1、首先建立M函数文件右键——新建——函数,其中函数文件的格式、是: function [输出变量] = 函数名称...2、然后使用保存的函数文件名来调用函数 如下所示: a=A(3) 或 A(3) %可直接输入 3、其次,
  • 函数调用格式

    千次阅读 2019-07-22 10:05:07
    函数调用格式: 代码: //eg1: #include<stdio.h> void ppp(); //声明 int main() { ppp(); //有分号 return 0; } void ppp() { printf("aaa"); } //eg:2. #include <stdio.h> void ppp() //定义...
  • Q1:python函数里的数组如何函数外调用出来使用返回值的方法有两种:可以直接把调用的函数作为变量使用可以用调用函数给一个变量赋值第一种情况见如下例子:l = [1,2,3,4,5]def add_element(list, element):list....
  • python函数调用的四种方式

    千次阅读 2020-11-20 22:03:56
    原标题:python函数调用的四种方式第一种:参数按顺序从第一个参数往后排#标准调用 运行结果: 第二种:#关键字调用 注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了‘*’收集参数。不能写成这样的:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,855,117
精华内容 1,942,046
关键字:

在调用函数时