精华内容
下载资源
问答
  • 函数参数两种传递方式

    千次阅读 2020-03-27 19:02:11
    当调用函数时,有两种向函数传递参数的方式: 一、传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。 默认情况下,C 语言使用传值调用方法来传递参数。...

    如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。

    形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。
    当调用函数时,有两种向函数传递参数的方式:

    一、传值调用

    该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
    默认情况下,C 语言使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数
    函数 swap() 定义如下:

    /* 函数定义 */
    void swap(int x, int y)
    {
       int temp;
    
       temp = x; /* 保存 x 的值 */
       x = y;    /* 把 y 赋值给 x */
       y = temp; /* 把 temp 赋值给 y */
      
       return;
    }
    

    现在,让我们通过传递实际参数来调用函数 swap():

    #include <stdio.h>
     
    /* 函数声明 */
    void swap(int x, int y);
     
    int main ()
    {
       /* 局部变量定义 */
       int a = 100;
       int b = 200;
     
       printf("交换前,a 的值: %d\n", a );
       printf("交换前,b 的值: %d\n", b );
     
       /* 调用函数来交换值 */
       swap(a, b);
     
       printf("交换后,a 的值: %d\n", a );
       printf("交换后,b 的值: %d\n", b );
     
       return 0;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    交换前,a 的值: 100
    交换前,b 的值: 200
    交换后,a 的值: 100
    交换后,b 的值: 200
    
    

    上面的实例表明了,虽然在函数内改变了 a 和 b 的值,但是实际上 a 和 b 的值没有发生变化。

    二、引用调用

    通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
    传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。
    还是以上述代码为例:

    /* 函数定义 */
    void swap(int *x, int *y)
    {
       int temp;
       temp = *x;    /* 保存地址 x 的值 */
       *x = *y;      /* 把 y 赋值给 x */
       *y = temp;    /* 把 temp 赋值给 y */
      
       return;
    }
    

    现在,让我们通过引用传值来调用函数 swap():

    #include <stdio.h>
     
    /* 函数声明 */
    void swap(int *x, int *y);
     
    int main ()
    {
       /* 局部变量定义 */
       int a = 100;
       int b = 200;
     
       printf("交换前,a 的值: %d\n", a );
       printf("交换前,b 的值: %d\n", b );
     
       /* 调用函数来交换值
        * &a 表示指向 a 的指针,即变量 a 的地址
        * &b 表示指向 b 的指针,即变量 b 的地址
       */
       swap(&a, &b);
     
       printf("交换后,a 的值: %d\n", a );
       printf("交换后,b 的值: %d\n", b );
     
       return 0;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    交换前,a 的值: 100
    交换前,b 的值: 200
    交换后,a 的值: 200
    交换后,b 的值: 100
    

    上面的实例表明了,与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值。

    展开全文
  • C语言形式参数传递的两种方式

    千次阅读 2018-10-22 20:06:15
    C语言中实际参数(实参)与形式参数(形参)之间的传递方式传值和传地址两种函数调用方式。 1.直接传值。 直接传值,在fun函数里面改变a,b的值,不会改变主函数里面a,b的值。 #include&lt;stdio.h&gt;...

    C语言中实际参数(实参)与形式参数(形参)之间的传递方式有传值和传地址两种函数调用方式。

    1.直接传值。

    直接传值,在fun函数里面改变a,b的值,不会改变主函数里面a,b的值。

    #include<stdio.h>
    void fun(int a, int b)  // 此处a, b为形参
    {
        a++;
        b++;
    }
    void mian()
    {
        int a=1, b=2;    
        fun(a, b);  // 按传值方式调用函数fun,此处a,b为实参
        printf("%d, %d\n", a, b);  // 输出a=1, b=2
    }

    2.传地址方式

    在fun函数里面改变a.b的值,主函数里面a,b的值也会改变。

    #include<stdio.h>
    void fun(int *a, int *b)  
    {
        *a =3;
        *b =4;
    }
    void main()
    {
        int a=1, b=2;    
        fun(&a, &b);  // 按传地址方式调用函数fun
        printf("%d, %d\n", a, b);  // 输出a=3, b=4
    }

     

    展开全文
  • 函数参数传递的两种方式——值传递和引用传递

    万次阅读 多人点赞 2018-10-23 15:50:05
    值传递包括实实在在的值传递以及指针传递(指针传递参数本质上是值传递的方式,它所传递的是一个地址值),传递的都是实参的一个拷贝。 1、实实在在的“值”传递 #include &lt;iostream&gt; #include &...

    参考原文详细说明:https://www.cnblogs.com/codingmengmeng/p/5865510.html

    一、值传递

    值传递包括实实在在的值传递以及指针传递(指针传递参数本质上是值传递的方式,它所传递的是一个地址值),传递的都是实参的一个拷贝。

    1、实实在在的“值”传递

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    void function(int num){
    	//改变num的值
    	num = 100;
    }
    
    int main()
    {
    	int number;
    	number = 1;
    	function(number);
    	cout << number << endl;
    	return 0;
    }

    这样的值传递只能把一个函数中的值传递给另一个函数,当该值在被调函数中发生改变时,在原来的函数中并不会发生改变。因为被调函数的形参只有函数被调用的时候才会临时分配单元,一旦调用结束占用的内存便会释放,所以调用的函数中存储number的地址跟被调函数中num的地址不是一回事。

    那如果想让number通过被调函数改变怎么做呢?第一种是使用指针形式的值传递,第二种是使用引用传递。

    2、指针传递

    指针传递是通过地址间接的改变了实参的值。

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    void function(int* num){
    	//通过改变num对应地址的值来实现值的改变:形参num是一个指针,传递过来的是一个地址值,解引用即可访问到这个地址值映射的值
    	*num = 100;
    }
    
    int main()
    {
    	int number;
    	number = 1;
    	function(&number);
    	cout << number << endl;
    	return 0;
    }

    二、引用传递

    对引用的操作等于是对其指定的对象进行操作,当将实参传递给形参时,形参就指向了实参(形参与实参同义,是实参的一个别名)。

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    void function(int& num){
    	//通过引用改变num的值
    	num = 100;
    }
    
    int main()
    {
    	int number;
    	number = 1;
    	function(number);
    	cout << number << endl;
    	system("pause");
    	return 0;
    }

     

    展开全文
  • Shell 参数获取的两种方式

    千次阅读 2019-09-25 14:42:24
    方式一 示例   新建一个test.sh文件 #!/bin/bash echo "shell 名称 = $0" echo "参数1 = $1" echo "参数2 = $2" echo "参数3 = $3" echo "参数4 = $4" echo "参数5 = $5" ...  执行脚本 : sh test.sh 5...参数1 = 5...

    方式一

    示例

      新建一个test.sh文件

    #!/bin/bash
    echo "shell 名称 = $0"
    echo "参数1 = $1"
    echo "参数2 = $2"
    echo "参数3 = $3"
    echo "参数4 = $4"
    echo "参数5 = $5"
    

      执行脚本 : sh test.sh 5 6 3 6 2

      输出结果

    shell 名称 = test.sh
    参数1 = 5
    参数2 = 6
    参数3 = 3
    参数4 = 6
    参数5 = 2
    

      使用该方式有两点需要注意的地方:"$0" 表示的是脚本本身
      优点 : 获取参数方便、简洁
      缺点 :必须按照指定的顺序输入参数,中间不能漏参数。否则参数将会产生错乱。

    方式二 使用 getopts 方式获取

      如果需要实现类似 rm -r -f 指定参数值的方式,则推荐使用此种方式。
      使用该方式需要使用到Shell内置的函数"getopts"。
      在使用之前你需要知道一下几个内置参数的意义:

    1. optstring option :字符串,当中为参数选项,会逐个匹配。
    2. varname :每次匹配成功的选项
    3. arg :参数值
    4. $OPTIND :option index,会逐个递增,初始值为1
    5. $OPTARG :option argument,不同情况下会有不同的值

      该函数的具体使用方式 : getopts [option[:]] VARIABLE
      参数说明:

    • [option[:]] 表示参数,以"?️b:c:"的方式设置
      #####注意细节:
    1. 以":"开头时:getopts不会提示错误信息,会区分invalid option错误和miss option argument,两种错误的值不一样。invalid option错误时,VARIABLE会被设为*?。为出问题的option。miss option argument时,VARIABLE会被设为*。$OPTARG为出问题的option。
    2. 不以":"开头时:getopts会提示错误信息。会根据invalid option错误和miss option argument。提示两种不同的错误。VARIABLE都会被设为?*。$OPTARG都为空
    3. 如果option后面跟了":"表示该option可以接收参数,参数(argument)会被放在$OPTARG中。
    #!/bin/bash
    
    while getopts ":a:p:n:s:" opt
    do
        case $opt in
            n)
                echo "$OPTARG"
            ;;
            s)
                echo "$OPTARG"
            ;;
            a)
                echo "$OPTARG"
            ;;
            p)
                echo "$OPTARG"
            ;;
            *)
                echo "未知参数$opt"
                echo "参数值$OPTARG"
            ;;
            ?)
                echo "未知参数$opt"
                echo "参数值$OPTARG"
            ;;
        esac
    done
    

      执行:sh getopt.sh -a 12 -p 32 -s string -n 你好 -r 世界
      输出:

    12
    32
    string
    你好
    install.sh: 非法选项 -- r
    未知参数?
    参数值
    
    展开全文
  • java中传递参数两种方式

    万次阅读 2017-11-08 09:16:45
    Java中有两种传递参数的方式,分别为:  值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。  引用传递:也称为传地址。方法调用时,...
  • C++函数传递参数的方式有哪?

    万次阅读 2017-09-04 22:58:51
    C++函数传递参数的方式以下四: (1) 值传递  当进行值传递时,就是将实参的值复制到形参中,而形参和实参不是同一个存储单元,所以函数调用结束后,实参的值不会发生改变,程序示例如下: #include using ...
  • shell中脚本参数传递的两种方式

    千次阅读 2019-05-15 15:29:27
    https://blog.csdn.net/sinat_36521655/article/details/79296181
  • 宏定义有无参数宏定义和带参数宏定义两种。  无参数的宏定义的一般形式为  # define 标识符 字符序列 其中# define之后的标识符称为宏定义名(简称宏名),要求宏名与字符序列之间用空格符分隔。这种宏定义要求...
  • 参数两种传递方式详解

    千次阅读 2011-11-12 11:21:37
    在PHP中参数有两种传递方式,分别是值传递和引用传递。值传递是将要传递的值作为一个副本进行传递;而引用传递则是传递引用对象的内存地址。 下面则是对这两个的详解  1:值传递 值传递是参数在调用函数前后...
  • operator+单参数和双参数两种写法

    千次阅读 多人点赞 2017-07-27 09:05:54
    C++运算符重载在自定义类中经常会用到,比如...以operator+为例,通常直观的感觉操作数就是应该有两个,写法如下: Point operator+(const Point &p1, const Point &p2) const;   关于上一句operator重载的格式声
  • java 传递参数两种方式

    万次阅读 多人点赞 2015-10-19 15:39:28
    Java中没有指针,所以也没有引用传递了,仅仅值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能  值传递:方法调用时,实际参数把它的值传递给对应...
  • JMeter参数化4实现方式

    千次阅读 多人点赞 2020-08-26 21:09:44
    下面是目前JMeter系列已博文列表,持续更新中: JMeter安装与接口测试入门 JMeter接口测试之断言实现 JMeter逻辑控制器 JMeter配置元件 JMeter操作Mysql数据库 BeanShell Sampler与BeanShell断言 JMeter Linux下...
  • jquery传输多个参数两种方法

    千次阅读 2018-10-16 10:59:30
    在使用js的时候,需要写一个方法,需要传输多个参数,试了两种方法,记录一下。 function uploadFile(student_info_id ,name) { swal({ title: "Ajax请求示例"+student_info_id+name, text: "提交...
  • 用集合接收参数分为两种:第一种是直接用一个集合类型来接收,第二种是在一个实体类中包含集合类型的参数 这里我会分别将这两种情况用代码实现下,例子使用springboot框架。 第一种:后端直接用集合类型来接收参数...
  • #include using namespace std; void mySwap(int *p1,int *p2); int main(){ int a=12; int b=44; int *pa=&a; int *pb=&b; if(a){ mySwap1(a,b); //mySwap2(pa,pb); //mySwap3(pa,pb);... //mySw
  • 上篇文章《c语言函数传参の结构体数组篇》提到了C语言的函数传参方式,百度了一一一大圈,两种的,也说三种的,简直把我搞晕了,其中争议的地方就是“引用传递”方式。我看好多写三种方式的都把源代码代码贴...
  • 向线程传递参数两种基本方法

    万次阅读 2017-02-08 11:07:13
    在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回...本文就以上原因介绍了几用于向线程传递数据的方法。欲先取之,必先予之。一般在使用线程时都需要
  • 数组作为参数传递的两种形式: (1)在形参数组前不添加params修饰符,所对应的实参必须是一个数组名。 (2)在形参数组前添加params修饰符,所对应的实参可以是数组名,也可以是数组元素值的列表(即:数据列表)...
  • Linux实现输入参数求和(两种方式)

    千次阅读 热门讨论 2018-11-14 20:36:55
    第一方式: 第二方式:   结果显示     这里需要注意求和只能用$@,不能用$*,不然会出现以下错误: 附上尚硅谷的PPT  
  • form表单提交带参数两种方式

    万次阅读 2019-09-05 14:59:08
    #第一方式# action写明了LoginServlet,通过submit按钮直接提交到后台 <form action="LoginServlet" method="post"> <input type="text" id="inputUsername" name="username" placeholder="Username...
  • 延时的两种方法(带参数和不带参数)

    千次阅读 2018-04-25 12:09:02
    StartCoroutine(Test(2)); IEnumerator Test(int a) { yield return new WaitForSeconds(2);//等待秒 Debug.Log("second"); yield return 10;//等待一帧 Debug.Log("10"); yie...
  • 1、Jmeter获取API Response中参数值的两种方法: (1)、正则表达式提取器 (2)、JSON提取器 2、正则表达式提取器使用详解: 在HTTP请求下面添加–>后置处理器–>正则表达式提取器 引用名称:下次传参的变量...
  • C/C++中参数传递有两种方式,传值或传地址(传引用)
  • 实现参数传递的几方式

    千次阅读 2017-08-03 10:55:26
    由于web系统采用http协议在浏览器和服务器之间传输数据,而http协议是一无状态的协议,如何在不同页面之间、或页面向后端传递数据,可以一下几方式  方式一:表单方式传递  表单传递参数是一最简单,...
  • Python爬虫基础-01-带请求参数的爬虫

    万次阅读 多人点赞 2018-06-06 19:06:23
    在上一篇文章Python爬虫入门中,Python爬虫程序爬取了指定网页的信息,爬虫发出的请求是一个固定的URL和部分请求信息,...HTTP请求分为POST请求和GET请求,这两种请求添加请求参数的方式不同 GET请求 POST请求...
  • mybatis 传递参数的三方式

    万次阅读 2017-06-14 11:50:28
    mybatis 框架的主要工作是数据层, 侧重于与...mybatis 传递参数的方式主要: 1. 多个参数的传递方式  形式如:  GoodMapper.java:  public Good selectGood(String id, String name);  GoodMapper
  • C++可变参数两种方法

    万次阅读 2017-11-26 21:52:08
    在C++中,的时候函数的参数个数无法确定,此时就会出现问题,如:将n个数进行相加 int sum(int i1, int i2); int sum(int i1, int i2, int i3); ...//还可以重载更多类似函数 double sum(double d1, double d2); ...
  • react 点击事件传参数两种

    万次阅读 2019-04-18 10:19:40
    //根元素只能一个 (this, 11, 22)}> {this.state.click ? "点击" : "已点击"} <h4>{this.state.value} ); } } export default App; 方案二:ES6箭头函数绑定this import React, { ...
  • C# SQL变量参数传递的两种方式

    千次阅读 2015-10-10 13:49:07
    1.直接将值传入SQL语句方式 string sql = insert into tbUser(userName) values("+txtUserName.Text+") //调用SQLHelper类 DbAccess.Instance....2.通过带参数的SQL语句方式 SqlParameter[] param = new

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,218,397
精华内容 1,287,358
关键字:

参数分为哪两种