C++

正好准备面试,顺便复习一下指针和引用,这俩在比赛中用的比较少。

简单来说,引用符号是 & ,变量前加了这个符号,可以在我们修改形参的时候同时改变实参的值。因为一般的话,实参传值之后,实参是实参,形参是形参,除非做了return等操作。

引用用法

#include <iostream>
using namespace std;

void cal(int &z)
{
    z*=5;
}

int main()
{
    int a,&b=a;  // 声明简单的变量,声明引用变量(这俩可以写一行)
    a=5;
    cout<<"i = "<<a<<endl; //i = 5
    cout<<"r = "<<b<<endl; //r = 5

    b=4;
    cout<<"a = "<<a<<endl; //a = 4
    cout<<"b = "<<b<<endl; //b = 4

    int x=4;
    cout<<"******"<<x<<endl; //******4
    cal(x);
    cout<<"------"<<x<<endl; //------20

    return 0;
}

C++引用和指针的区别

  • 引用:必须被初始化,值不能为NULL,初始化以后不能被改变,只能是一级

  • 指针:不用初始化,值可以为空,初始化以后可以改变所指的对象,可以有多级,可以作为参数进行传递

  • C++中尽量用引用。个人觉得所有的引用都可以用指针,但指针比引用容易出错

  • 引用当然更直观更直接,做参数时,如果在函数内不刻意要用指针的那些副作用(如越界访问,动态定向什么的)

  • 指针:是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元。可以有const指针,但是没有const引用

  • 引用:跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已

  • "sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小

  • 指针和引用的自增(++)运算意义不一样

原文地址:https://www.cnblogs.com/OFSHK/p/14542252.html