1.引用(代替指针的效果)

给变量取别名

语法:数据类型 &别名 = 原名

int a =10; int &b=a;

//现在b和a都可以操作数据10

这个数据内存 b=20;

cout<<"a="<<a<<endl;

cout<<"b="<<b<<endl;

结果 :a=b=10

 引用的注意事项

①引用必须初始化

②引用一旦初始化后就不可更改。

2 引用做函数参数

① 值传递(不改变实参的值)

②指针传递(&)(会改变实参的值)

③ 引用传递(优点:简化指针,更简单)

例如:交换函数

void swap2(int &a, int &b)

{

int tmp=a;

b=a;

b=tmp;

}

3 引用做函数的返回值

①.不要 返回局部变量的引用(局部变量由操作系统决定)

例如: void fun()

{

int a=10;

}

int main()

{

int &b=a;

cout<<a<<endl;

}

//错误的

②;静态变量,放在全局区,在程序结束后释放

4 引用的本质 引用的本质在c++内部的实现是一个指针常量 其实,引用最大的优点在于许多关于指针的步骤,编译器自动帮我们完成,该步骤不可见;

// 发现是引用,转化为int*const ref=&a;

void func(int &ref)

{

ref=100;

//ref是引用,转化为*ref=100;

}

int main()

{

int a=100; //自动转化为int* const ref=&a;指针常量的指针指向不可更改——>所以引用也不可更改

int &ref=a;

ref=20;//内部发现ref是引用,自动转化为*ref=20;

cout<<"a="<<a<<endl;

cout<<"ref="<<ref<<endl;

fun(a);

return 0;

}

5常量引用

使用场景:用来修饰形参,防止误操作;

int a=10;

通常运用 const 来保护实参,放止实参被修改 例子:

void show( const int &v)

{

v++/--;//不可更改const;

cout<<v<<endl;

}

int main()

{

int &ref=10;//该行错误,引用本身需要一个合法的空间; //加入const即可解决问题;

其原理为:

int temp=10; int &ref=temp; 构造了一个引用;//这里构造了一个temp变量(隐式转换)

const int &ref=10; //加入const后 不可以修改变量的值;

cout<<ref<<endl;

// 函数中利用常量,防止误操作改变实参的值

int a=10;

show(a);

system("pause");

return 0;

}

@希望对大家有帮助