引用:不是定义一个别名,而是对一个变量从新定义一个别名。
eg1:
eg2:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int c = 12;
int &d = a;//d引用a
int &b = a;
b = 20;//通过b的值修改a
int &e = b;
e = 30;
//int &b = c;//错:b已经引用了a
//int &b;//错
//b = c;
cout<<a<<endl;
return 0;
}
引用的特点:
(1)一个变量可有多个别名
(2)引用必须初始化
(3)引用必须从一而终(只在初始化时引用一次,不能改变为在引用其他变量)
const引用
#include <iostream>
using namespace std;
int main()
{
int a = 10;
const int &reta = a;
//reta = 20; //若加上const则reta为常量,不可通过reta的值改变a
cout << b <<endl;
return 0;
}
注:c++ 用const修饰为常量
c 用const修饰为常变量
引用作用于函数参数
注:引用背后的实现是指针。
引用与指针之间的区别和联系:
(1)引用只能在定义的时候初始化一次。(从一而终)
(2)引用必须指向有效的变量,而指针可以为空。
(3)sizeof:引用指向变量的类型。指针在32位平台下始终为4.
(4)自增自减:引用是对变量的子增自减。而指针是偏移到下一个。
(5)引用比指针安全。