精华内容
下载资源
问答
  • 现在我们回过头来看什么叫实参和形参。由上面的叙述可以看到,函数其实有一定的独立性的,参数是在调用约定下放在指定地方供函数使用的,在我们实现函数的时候,实际的参数是什么我们还不知道,但我们知道有多少参数...

    满意答案

    02ae427d08e371d7e90d5b995e828d6d.png

    xyz2u

    2013.06.16

    02ae427d08e371d7e90d5b995e828d6d.png

    采纳率:55%    等级:11

    已帮助:13230人

    不知道函数调用原理的话,很难说得清楚的。粗略的说在C中函数其实是分成三个部分,分别是声明、实现和使用。声明就是告诉C有这么个函数,实现就是这个函数的完整代码,使用则是调用这个函数帮你做运算或者是做事情。为了让函数能做更多的事情,就需要一种方法能向函数传递性息,最可靠、最方便的方法就是参数传递,C就是这样做的。参数传递也不是简单的一件事情,首先在调用者和被调用者之间得有个约定,大家约定好了参数放什么地方,如何使用,这个就称为调用约定。现在我们回过头来看什么叫实参和形参。由上面的叙述可以看到,函数其实有一定的独立性的,参数是在调用约定下放在指定地方供函数使用的,在我们实现函数的时候,实际的参数是什么我们还不知道,但我们知道有多少参数,分别是什么数据类型的和放在什么地方(顺序),这个是由调用约定来保证的。我们知道的这些就是形式的或者说是逻辑的,我们在实现函数(编写函数体)的时候需要给他们命名,以便使用,这些在函数实现的时候命名的形式上的参数就是形式参数,简称形参。而在实际调用发生的时候,调用者会将实际的参数放在约定好了的地方,这个实际参数简称实参。函数被运行的时候实参和形参形成了一一对应,对形参的操作就变成了对实参的操作。

    对调用约定还有需要说明的就是,现在常用的调用约定都是传值的,也就是说只是传递了一个副本,这样做的结果就是你对形参的操作不会被传递出来。

    31分享举报

    展开全文
  • 偶然出现了这个错误,然后后面引出一大堆错误,代码一步一步检查下来发现居然是头文件末尾声明函数时忘记加“;”,太粗心了!!!

    在这里插入图片描述
    偶然出现了这个错误,然后后面引出一大堆错误,代码一步一步检查下来发现居然是头文件末尾声明函数时忘记加“;”,太粗心了!!!

    展开全文
  • js 函数中形参与实参的关系 函数中形参与实参的关系 对于形参和实参的定义,在 权威指南中有着明确的定义.但是,我们更在意的是它们之间的关系,到底形参会不会影响到实参? 形参到底会不会影响到实参? 对于这个问题的...

    今天阅读了一个写的非常棒的博文,通过此博文再次复习了Java中参数传递的知识(即值传递与引用传递的区别)。参考网站http://www.cnblogs.com/binyue/p/3862276.html。下面我将通过次博文记录自己的理解,还望能够帮助再学Java或者复习Java的朋友们。

    一、基本类型与引用类型在内存中的保存内容

    Java中的变量分为基本类型和引用类型两种。基本类型的变量保存数值本身,而引用类型的变量保存的是引用值,即指向内存空间的地址。

    基本类型包括:byte,char,int short,long,float,double,boolean;

    引用类型包括:类类型,接口类型和数组。

    二、基本类型与引用类型的区别

    *基本类型在声明其变量时就为它分配了空间:

    int value;

    value =10;//正确,因为声明a时就分配了空间

    *而引用不同,在进行引用的声明时只给变量声明了引用空间,而不分配数据空间:

    Date date;

    //执行实例化,开辟数据空间存放Date对象,然后把空间的首地址传给today变量

    //date=new Date();

    //如果注释掉上一步操作

    //The local variable date may not have been initialized

    //也就是说对象的数据空间没有分配

    date.getDate();

    *初始化过程如下:

    Date a,b;//在内存开辟两个引用空间

    a =new Date();//开辟存储Date对象的数据空间,并把该空间的首地址赋给a

    b = a;//将a存储空间中的地址写到b的存储空间中

    ##:注意:引用也是占用空间,一个空对象的引用大小大概是4byte。

    三、引用传递和值传递

    *值传递:方法调用时,实际参数将它的值传递给对应的形式参数,函数接收到的是原始值的副本,此时内存中存在两个相等的基本类型,若方法中对形参执行处理操作,并不会影响实际参数的值。

    *引用传递:方法调用时,实际参数的引用(是指地址,而不是参数的值)被传递给方法中相应的形式参数,函数接收到的是原始值的内存地址,在方法中,形参与实参的内容相同,方法中对形参的处理会影响实参的值。

    具体代码如下:

    public class ReferencePkValue2 {

    public static void main(String[] args) {

    ReferencePkValue2 t =new ReferencePkValue2();

    int a=99;

    t.test1(a);//这里传递的参数a就是按值传递

    System.out.println(a);

    MyObj obj=new MyObj();

    t.test2(obj);//这里传递的参数obj就是引用传递

    System.out.println(obj.b);

    }

    public void test1(int a){

    a=a++;

    System.out.println(a);

    }

    public void test2(MyObj obj){

    obj.b=100;

    System.out.println(obj.b);

    }

    }

    输出的结果是:

    100

    90

    100

    100

    * 这里要特殊考虑String,以及Integer、Double等几个基本类型包装类,它们都是immutable类型,

    因为没有提供自身修改的函数,每次操作都是新生成一个对象,所以要特殊对待,可以认为是和基本数据类型相似,传值操作。

    四、结论

    1)形参为基本类型时,对形参的处理不会影响实参。

    2)形参为引用类型时,对形参的处理会影响实参。

    3)String,Integer,Double等immutable类型的特殊处理,可以理解为值传递,形参操作不会影响实参对象。

    java 中形参与实参的转换

    java中有两个参数,一个是形参,一个是实参. 形参:在函数定义中,整个函数体内部都可以使用,离开了该函数就不能继续使用. 实参:出现在主函数中,进入被调函数后,实参变量也就不能继续使用. publi ...

    深入理解java的形参和实参

    转载声明:本文转载自公众号「码匠笔记」. 前几天在头条上看到一道经典面试题,引发了一些思考.也是写这篇文章的导火索. 背景 请看题: public    classMain{    publicsta ...

    浅谈对java中传参问题的理解

    之前用的c/c++比较多,在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.在网上找了找,按我之前的理解,java中传 ...

    js 函数中形参与实参的关系

    函数中形参与实参的关系 对于形参和实参的定义,在 权威指南中有着明确的定义.但是,我们更在意的是它们之间的关系,到底形参会不会影响到实参? 形参到底会不会影响到实参? 对于这个问题的答案,请先看以下两 ...

    java中容器的学习与理解

    以前一直对于java中容器的概念不理解,虽然学习过,但始终没有认真理解过,这几天老师提出了这样一个问题,你怎么理解java中的容器.瞬间就蒙了.于是各种搜资料学习了一下,下面是我学习后整理出来的的一些 ...

    java中传值方式的个人理解

    前言 这几天在整理java基础知识方面的内容,对于值传递还不是特别理解,于是查阅了一些资料和网上相关博客,自己进行了归纳总结,最后将其整理成了一篇博客. 值传递 值传递是指在调用函数时将实际参数复制一 ...

    Java中的不可变类理解

    一.Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量. 可变类(Mutable Objects):类的实例创建后,可以修 ...

    java的形参与实参的区别以及java的方法

    package com.lv.study; public class Demo05 { public static void main(String[] args) { //我想要用什么分隔符进行分隔 ...

    一道题带你搞定Python函数中形参和实参问题

    昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂.人生苦短,我用Python. 为了解答大家 ...

    随机推荐

    MySQL主从复制中常见的3个错误及填坑方案

    一.问题描述 主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就 ...

    Git Cheat Sheet

    Merge Undo git merge with conflicts $ git merge --abort Archive $ git archive --format zip --output ...

    IOS 线程处理 子线程

    IOS 线程处理 子线程的启动与结束 技术交流新QQ群:414971585   IOS中,如果要在主线程中启动一个子线程,可以又两种方法: [NSThread detachNewThreadSelec ...

    CodeForces 686C-Robbers' watch

    题意: 一个电子手表的示数是7进制的,现在告诉你一天有多少小时和一小时有多少分钟,问你一天里有多少个时刻,这个表上显示的数字各不相同. 分析: 先找出表上有多少位数字,再按位dfs,看最后得到的数是否 ...

    《shell脚本学习指南》学习笔记之入门

    为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此 ...

    Python-week1,第一周(基于Python3.0以上)

    1,变量 准确来说不是第一周学习了吧,应该是采用博客记录学习的第一周,记录并做个笔记吧,可能做的不好,但我高兴啊,废话不说了,上图. 学习过程中做的一些笔记,当然能面面俱到,只能在写博客的时候又能复习 ...

    npm cnpm yarn

    npm 如何下载指定版本的组件 先确保文件目录下含有 package.json 文件, 没有的话,可以通过 npm init 创建, 然后只需要在组件的后面加上 @2.8.1 版本号即可, 例如:re ...

    一个用JS数组实现的队列

    一个用JS数组实现的队列 /*一个用数组实现的队列*/ function Queue(){ this.dataStore = [];//存放队列的数组,初始化为空 this.enqueue = enq ...

    hololens DEP2220: 无法删除目标计算机“127.0.0.1”上的文件夹

    Hololens开发调试的过程中,可能会出现 “DEP2220: 无法删除目标计算机“127.0.0.1”上的文件夹“ 的错误导致无法部署,解决办法是进入项目属性页——调试——启动选项,勾选“卸载并重 ...

    展开全文
  • 函数的形参列表

    千次阅读 2020-09-07 12:12:29
    函数在定义的时候,可以定义“形参列表”,用于接收参数!形参列表就是定义一系列的参数,可以是变量或函数指针。形参变量用于接收函数调用的时候,传递过来的数据。 这里我们先讲解形参是变量的知识,后续再讲解...

    函数在定义的时候,可以定义“形参列表”,用于接收参数!形参列表就是定义一系列的参数,可以是变量或函数指针。形参变量用于接收函数调用的时候,传递过来的数据。

    这里我们先讲解形参是变量的知识,后续再讲解形参是函数指针的知识。

    根据函数的定义格式如下:

    返回数据类型 函数名(形参列表)

    {

    函数体

    }

    那么,形参列表是变量的时候,就是如同定义变量一样,如下:

    返回数据类型 函数名(数据类型名 变量名)

    如果要定义多个参数变量,定义格式如下:

    返回数据类型 函数名(数据类型名 变量名1, 数据类型名 变量名2, … 数据类型名 变量名N)

    可以看到,形参列表就是定义多个变量的列表,定义情况有:

    (1) 如果不定义形参列表,函数形参可以使用void关键字修饰;

    (2) 如果只定义1个变量,可以如同定义变量一样,末尾不需要用引号“;”结束;

    (3) 如果定义多个变量,在定义不同变量之间是有逗号“,”分隔开;

    注意:虽然可以在形参列表中定义多个参数,但是,在编写程序的时候,要考虑函数模块之间的“耦合性”和“扩展性”。不要传递太多的参数。如果项目需求改动,需要修改某个参数,就会导致函数接口的改动,函数接口的改动对程序的改动很大,这种操作应该极力避免。

    当学习到结构体之后,我们可以把多个参数封装到一个结构体中,函数的参数只需要传递一个结构体变量就OK了。那么,当有数据需要改动,只需要修改结构体的定义和数据,函数的接口不需要修改,那么,函数模块之间的耦合性就降低,提高程序函数模块之间的扩展性。这就是函数模块扩展性好的一个表现形式,也是定义函数时需要思考的注意点。

    举例说明形参列表的定义如下:

    void func1(int a); //表示func1函数接收一个int类型的参数

    void func2(int a, int b, int c)//表示func2函数接收3个int类型的参数

    那么,调用函数的时候,有:

    (1) func1(8); 此时,调用func1函数,在参数中填入8这个数值,那么,就把8这个数值传递给形参变量a。等价于:

    int a = 8;

    所以,就是把8整数值赋给形参变量a;

    (2) func2(6, 7, 8); 此时,调用func2函数,在参数列表中填入6, 7, 8这个数值,那么,就会按顺序把数值6赋给形参变量a,把数值7赋给形参变量b,把数值8赋给形参变量c。等价于:

    int a = 6;

    int b = 7;

    int c = 8;

    所以,就是按顺序,把调用func2函数时的参数,设置到形参变量。

    那么,下面编写程序测试,看看怎么样使用定义函数的“形参列表”,测试代码如下:

     

    程序运行结果如下:

     

    可以看到,调用func1(10); 的时候,把实参10这个数值,传递给func1()函数的形参变量a;所以,在func1()函数中输出形参变量a的值,就是10这个数值。

    同理,func2(6, 7, 8); 函数的调用,是把实参6, 7, 8分别赋给func2()函数的形参变量 a, b, c。等效于:

    int a = 6;

    int b = 7;

    int c = 8;

    所以,func2()函数的形成变量a, b, c分别得到6, 7, 8这些数值。

    韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

    展开全文
  • 错误号C2085,意思是出错变量不在形参列表中.行参列表,指的是函数声明或者定义的形参声明部分.出这个错,往往是因为出错位置或者此位置之前的一个函数的声明或者定义有语法错误. 这是摘自...
  • 什么是形参什么是实参?

    千次阅读 多人点赞 2020-05-13 21:27:42
    什么是形参什么是实参? 什么是形参形参全称叫做“形式参数”,也是一个虚拟的参数,在定义方法的时候使用的参数,形参是方法被调用时用于接收实参值的变量。 什么是实参? 实参全称叫做“实际参数”,顾名思义...
  • 在用c实现栈的时候出现了这... 栈\mian.c(2): error C2085: “main”: 不在形参表中 1>d:\c++\day9链表的增删改查及常用数据结构\3. 栈\mian.c(2): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1> func.c
  • main()函数形参是怎么回事?

    千次阅读 2016-12-06 21:26:33
    因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv) int ...
  • 形参和实参是什么

    万次阅读 多人点赞 2017-12-18 20:33:08
    形参和实参是什么
  • 最近在学习c++ 2.0(11/14/17)新特性,刚写上几行代码,就遇到编译器报错:C2563 在形参表中不匹配, 代码如下: // C11TEST.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <...
  • 如这个jdbc中封装的绑定参数的方法: /** * 绑定参数 * @param pstmt * @param os */ public static void executebindParam(PreparedStatement pstmt,Object ...os){ int len = os.length;...
  • 形参和实参是什么?? 实参(argument):  全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值...
  • cube()被调用时将创建一个名为x的double变量(x为形参)并将x的值初始化为m的值。cube()对x进行操作时,将不会影响m的值。 区别 1.实参可以是常量,变量,表达式,函数等,但都必须是确定的值。 2.形参用于接收实参...
  • 形参和实参是什么 书本的知识我就不说了,你可以这么理解,在函数花括号以内定义的的是实参,函数的参数是形参 例: Examle(int x,int y){ int t; } 这里x和y就是形参,t是实参
  • <p style="text-align:center"><img alt="" src="。。。" /> <p style="text-align:center"><img alt="" height="1039" src="https://img-ask.csdnimg.cn/upload/1621766587411.png" width="1920" /></p>  </p>
  • 《每天学一点C语言系列》之形参和实参形参和实参的定义以及作用形参和实参在函数调用中的内存问题在简单函数运用中,形参和实参的数据类型形参和实参在C语言中的数据传递一、形参和实参的定义以及作用形参:全称为...
  • 以这段代码为例子 new Vue({ router, store, render: h =>...render函数里面的形参,可以做到这一点,所以 h这个函数 , 里面传进去一个App组件。注意: h 代表的是createElement 转载于:ht...
  • C语言中函数的形参与实参是什么

    千次阅读 2021-03-07 18:29:35
    函数的参数分为形参和实参两种形参出现:1、在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。2、实参出现在主调函数中,进入被调函数后,实参变量也不能使用。数据传送是形参和实参的主要功能。在...
  • unsigned char*类型的实参和char类型的形参不兼容是什么意思? *无法将参数 1 从“unsigned char”转换为“char ” 这个问题要怎么解决呢?
  • 然而,拷贝整个数组都无论是在时间还是存储空间上开销都是非常巨大的,在绝大部分时间你并非需要拷贝整个数组,你只想告诉函数在哪一时刻需要哪个特定数组,要达到这一目的,可以考虑的方法是在形参上增加一个存储...
  • C语言形参跟实参详解

    千次阅读 多人点赞 2019-01-29 15:27:56
    形参与实参 今天我们来说下c语言形参与实参的区别,形参跟实参理解的话也很简单,...1.形参和实参是什么 简单来说,形式参数(形参)就是形式上的参数,没有确定值, 而实参是实际存在的,已经确定的参数, ...
  • //其次啊 通过形参 返回, 例如你传一个数组 a[10] 那么形参只是复制的 a的地址 传进来, 所以返回不可能通过形参返回, 只能通过形参指向的地址 改变地址内的值。然后你可以在函数外面调用这个值. 严格意义上讲 就....
  • C语言中实参和形参的区别

    千次阅读 多人点赞 2020-11-06 21:42:57
    即实际参数,是在调用时传递给函数的参数,实参可以为常量,变量,表达式,函数等,无论实参为何种类型的量,在进行函数调用的时候都需要有确定的值,以便将这些值传递给形参。所以应当预先用赋值,输入等方法使实参...
  • Parameters in function definition prior Foraward slash (/) are positional only and parameters followed by slash(/) can be of any kind as per syntax. Where arguments are mapped to positional only param...
  • //编写一个函数swap(),测试该函数的实参值无改变...echo "交换前:形参a=$a,形参b=$b\n";$c=$b;$a=$b;$b=$c;echo "交换后:形参a=$a,形参b=$b\n";echo "退出swap()函数\n";}$variablea=5;$variableb=10;echo "调用sw...
  • const char类型的实参与FILE类型的形参不兼容是什么意思
  • 在C语言中,形参的缺省存储类别是().中形组成细胞核的主要化学成分是()参的存储气体在一等径管中等温稳定流动,现进出口压力不同,气体进出口处的密度发生变化,从而进出口处气体的质量流速也不同。缺省流体阻力的大小与...
  • 1>------ 已启动生成: 项目: test1, 配置: Debug Win32 ------1>...c:\users\administrator\documents\visual studio 2008\projects\1\test1\hello.c(3) : error C2055: 应输入形参表,而不是类型1>c:\use...
  • 注意: 如果在定义函数时数组做为了形参然后在函数中利用sizeof去求数组的长度,这时会得出一个错误的值1; void shuzu(int arr[]) { int n=sizeof(arr)/sizeof(arr[0]); ............ } 由于数组作为参数,在使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,111
精华内容 19,244
关键字:

形参表是什么意思