精华内容
下载资源
问答
  • 函数形参是C++函数学习中一大重点,经常让初学者头疼,这里我们通过讲解两个实参值互换例子讲解实参与形参关系,并比较普通变量、指针以及引用作形参区别,了解地址、名称以及值间联系,体会指针、引用...
  • 一,变量的引用 1.引用是一种新变量类型,它作用就是为变量起一个别名 例如: int b; int &a=b; 注:&表示引用声明符,不表示地址 2.声明一个引用类型变量时,必须在定义时进行初始化,及声明它代表哪一...

    一,变量的引用
    1.引用是一种新的变量类型,它的作用就是为变量起一个别名
    例如:

    int b;
    int &a=b;
    

    注:&表示引用声明符,不表示地址

    2.声明一个引用类型变量时,必须在定义时进行初始化,及声明它代表哪一个变量
    例如:

    #include<iostream>
    using namespace std;
    int main()
    {
      int b;
      b=10;//赋初值
      int &a=b;//引用
      cout<<b<<endl;
      cout<<"-------"<<endl;
      cout<<a<<endl; 
      return 0; 
    }
    

    二,引用作为函数的形参以及返回值
    1.引用作为函数的形参

    #include <iostream>
    using namespace std;
    int main()
    {
          void swap(int & ,int& );
          int i =7,j = 5;
          swap(i,j);
         cout<<"i="<<i<<endl<<"j="<<j<<endl;
          getchar();
          return 0;
    }
     
    void swap(int &a,int &b)
    {
        int temp;
        temp = a;
        a =b;
        b= temp;
    

    结果:
    i=5
    j=7
    注:形参是声明的引用,注意这个引用没有初始化,在调用函数时实现了初始化,做到了真正意义变量传递

    引用和指针做形参是很常见的问题,但是它们在做参数的时候是有区别的
    先说一下指针吧,指针他是一个变量,有具体的值,他的值是一个地址。而引用是对一个变量的引用,是变量的别名,并且在引用的时候必须要初始化。
    2.引用作为函数的返回值

    用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本

    #include<iostream>
    using namespace std;
    float temp;
    float fn1(float r){
        temp=r*r*3.14;
        return temp;
    } 
    float &fn2(float r){ //&说明返回的是temp的引用,换句话说就是返回temp本身
        temp=r*r*3.14;
        return temp;
    }
    

    注:当返回类成员引用时,最好是const引用,可以避免破坏类的成员

    展开全文
  • C++ PTA 引用作函数形参交换两个整数

    千次阅读 2020-05-31 15:57:31
    C++ PTA 引用作函数形参交换两个整数 设计一个void类型函数Swap,该函数有两个引用类型参数,函数功能为实现两个整数交换操作。 裁判测试程序样例: #include <iostream> using namespace std; /* 请在...

    C++ PTA 引用作函数形参交换两个整数

    设计一个void类型的函数Swap,该函数有两个引用类型的参数,函数功能为实现两个整数交换的操作。

    裁判测试程序样例:

    #include <iostream>
    using namespace std;
    
    /* 请在这里填写答案 */
    
    int main()
    {
        int a, b;
    
        cin >> a >> b;
    
        Swap(a, b);
    
        cout << a << " " << b << endl;
    
        return 0;
    }
    

    输入样例:

    3 5
    

    输出样例:

    5 3
    

    答案

    void Swap(int &a,int &b) {    
        a == b ? 0 : a ^= b ^= a ^= b;
    }
    
    展开全文
  • 设计一个函数,调用该函数时,实现整型变量x与y值得互换。如下程序: #include&lt;iostream&gt; using namespace std; void swap(int a,int b){int s;s=a;a=b;b=s} int main(){ int x=4,y=5; swap(x...

    设计一个函数,调用该函数时,实现整型变量x与y值得互换。如下程序:

    #include<iostream>
    using namespace std;
    void swap(int a,int b){int s;s=a;a=b;b=s}
    int main(){
         int x=4,y=5;
         swap(x,y);
         cout<<x<<' '<<y<<endl;
         return 0;
    }
    

    运行结果:

    4 5
    请按任意键继续 . . .
    

    当我们调用调用函数时,为没有实现实参x与y间值得互换,原因在于当我们调用函数时,首先进行实参与形参间的值得传递,即令a=x,b=y,之后实参的任务完成,被调用函数完成形参a与b间值得互换。
    要实现实参x与y间值得互换,可以利用指针与引用:

    一、指针

    利用指针,将形参作为实参的地址,在进行地址中的内容进行互换,就可以实现x与y间值得互换,程序设计如下:

    #include<iostream>
    using namespace std;
    void swap(int *a,int *b){int s;s=*a;*a=*b;*b=s}
    int main(){
         int x=4,y=5;
         swap(&x,&y);
         cout<<x<<' '<<y<<endl;
         return 0;
    }
    

    运行结果:

    5 4
    请按任意键继续 . . .
    

    思考:

    下面程序的输出结果是什么?和上面利用指针设计的程序输出结果相同吗?为什么会这样?

    #include<iostream>
    using namespace std;
    void swap(int *a,int *b){int *s;s=a;a=b;b=s}
    int main(){
         int x=4,y=5;
         swap(&x,&y);
         cout<<x<<' '<<y<<endl;
         return 0;
    }
    

    二、引用

    引用可以理解为为一个数据对象起了一个别名,当我们对一个数据对象的引用作操作时,也就是对该数据对象的操作。因此,将形参设计成实参的引用,就可以实现我们的目的。

    #include<iostream>
    using namespace std;
    void swap(int& a,int& b){int s;s=a;a=b;b=s}
    int main(){
         int x=4,y=5;
         swap(x,y);
         cout<<x<<' '<<y<<endl;
         return 0;
    }
    

    运行结果:

    5 4
    请按任意键继续 . . .
    

    swap函数对x与y的引用做了换值操作,也就是对x与y做了换值的操作。

    通过以上程序我们可以看出,引用作为参数最大的好处是既可以像指针那样工作,其使用方式又一般变量相同。引用比指针更具有可读性。

    更多精彩内容请关注微信订阅号“编程语言初学者”,我们会将不同网站发布的博客、推文统一发布于编程语言初学者订阅号。
    编程语言初学者

    编程语言初学者
    展开全文
  • //求3个正整数中最大数,用带有默认参数的函数实现。 #include <iostream> using namespace std;...//上面一句如果写引用这样就错了 int max(int &...//请高手解答一下,为什么这个函数形参不能用---引用---
  • C++中,复制构造函数为什么要用“常引用作形参,而不是“引用”?谢谢啦
  • 普通变量是直接传值 指针变量传递地址引用变量是隐式传地址,如void f(int &x),实际传递是x地址p,但是函数内部使用x时会自动变成*p void f(int &x) {x++}; 会变成 void f(int *p) {(*p)++}; ...

    普通变量是直接传值
    指针变量传递地址
    引用变量是隐式传地址,如void f(int &x),实际传递的是x的地址p,但是函数内部使用x时会自动变成*p
    void f(int &x) {x++}; 会变成
    void f(int *p) {(*p)++};

    展开全文
  • C++引用作函数参数 C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据功能。 小林在之前推文中介绍过函数参数传递两种情况。 将变量名作为实参和形参,这时传给形参的是 变量值,传递是...
  • #include <iostream> usingnamespacestd; voidchange(int*a,int&b,intc)//指针作形参,前面加*号,引用作形参前面加&号。 { c=*a; b=3; *a=2; } ...
  • /* ... *All rights reserved.... *文件名称:项目1函数参数传递三种方式引用作形参.cpp *作 者:魏永恒 *完成日期:2015年9月7日 *版 本 号:v1.0 * *问题描述:C语言提供了两种函数参数传递方式:
  • #include using namespace std; class A { public: A(){x=0;y=0;} A(int i,int j) { x=i;y=j; } void SetValue(int i,int j) { x=i;y=j; } void Disp() { cout<...r) //对象引用作为形参 { r.S
  • /* * 程序版权和版本声明部分 ... * All rightsreserved....* 者: 李洋 * 完成日期:2012年12月18日 * 版本号: v1.0 * 输入描述:输入数据 * 输出描述: 交换后数据 * 问题描述:无
  • C++引用作函数参数C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据功能。小林在之前推文中介绍过函数参数传递两种情况。将变量名作为实参和形参,这时传给形参的是 变量值,传递是单向...
  • C++引用作函数参数C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据功能。 小林在之前推文中介绍过函数参数传递两种情况。将变量名作为实参和形参,这时传给形参的是 变量值,传递是单向...
  • 主要知识归纳来自于这位博主CSDN博客:https://blog.csdn.net/tham_/article/details/45370607 相当于自己学习他同时做下笔记吧 将一个结构体变量中...用结构体变量的引用变量作函数参数。 用实例来...
  • /* * 程序版权和版本声明部分 ...* 者: 李洋 * 完成日期:2012年12月22日 * 版 本 号: v1.0 * 输入描述:三个整数 * 问题描述: 输入三个整数,并按从大到小顺序输出 * 程序输出: 略 * 问题分析: 略
  •  C 中函数中实参和形参是按值传递,调用函数后,会将实参值拷贝给形参(即形参和实参之间是没有关系,只是它们值是相同)。在被调函数中不可以改变实参值, 同样形参定义在被调函数中,在整个函数体内...
  • 引用传递:在调用函数时将实际参数地址传递到函数中,那么在函数中对参数所进行修改,将影响到实际参数。这种方式我觉得是并不常见,后来证实其实也常用。 下面对三种情况分别举例: 值传递例子:  ...
  • c++中基类指针指向派生类时,调用的虚函数是派生类的。那为何不直接用派生类的对象来调用就行了,设计虚函数的真正意图是什么?...其好处是:通过这个基类指针或者引用来调用虚函数的时候,实际执行的是派生类对象...
  • C/C++ 引用作为函数的返回值

    万次阅读 多人点赞 2018-08-04 13:19:48
    语法:类型 &...2.用引用作函数的返回值的最大的好处是在内存中不产生返回值的副本 //代码来源:RUNOOB #include&lt;iostream&gt; using namespace std; float temp; float fn1(float r){ ...
  • (一)问题及代码 /* 烟台大学计算机与控制工程学院 ... 者:岳增强 完成日期:2017年9月14日 问题描述:输入两个整数,逆序后输出 */ #include void myswap(int &x,int &y) { int t; t=x; x=y

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 240
精华内容 96
关键字:

引用作函数的形参