引用是指针的延申,本质相同但是引用的写法和可阅读性更强。
引用是引用一个已经存在的变量,而指针可以新建一个不存在的新指针
#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