引用

引用是指针的延申,本质相同但是引用的写法和可阅读性更强。

引用是引用一个已经存在的变量,而指针可以新建一个不存在的新指针

#include<iostream>
#define Log(x) std::cout<<x<<std::endl

int main()
{
    int a=5;
    int *b=&a;
    int& ref=a;
    ref=2;
    Log(a);
    std::cin.get();
}

引用时int和&是一个整体表示引用类型,引用并不会申请内存空间,引用相当于给变量起了一个别名。所以上面程序对ref操作也就相当于对a操作。常见错误是在引用函数时,经过函数运算后值并没有变。

#include<iostream>
#define Log(x) std::cout<<x<<std::endl

void Increment(int value)
{
    value++;
}

int main()
{
    int a=5;
    Increment(a);
    Log(a);
    std::cin.get();
}

如果想通过函数Increment改变a的值,那么有两种方法,一是将a的地址传入函数,二是使用引用

使用指针

#include<iostream>
#define Log(x) std::cout<<x<<std::endl

void Increment(int *value)
{
    (*value)++;
}

int main()
{
    int a=5;
    Increment(&a);
    Log(a);
    std::cin.get();
}

使用引用

#include<iostream>
#define Log(x) std::cout<<x<<std::endl

void Increment(int& value)
{
    value++;
}

int main()
{
    int a=5;
    Increment(a);
    Log(a);
    std::cin.get();
}
原文地址:https://www.cnblogs.com/wangtianning1223/p/12637431.html