C++中的引用

         

考完了C++,对其中的一个“&”有很多的疑问,这个符号表示引用。“*”表示定义指针变量,“&”是取地址的运算符。引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

举个例子:int a,&p;  p=&a; a=*p;下面详细介绍下我对“&”的理解。

       引用“&”是某一个变量的别名。但它不是求地址运算,只是起标识作用。应该注意的是声明引用时必须初始化,而且不能建立指向引用的指针,不能建立引用的引用,也不能建立引用数组

       引用的应用有三种:变量的引用、参数的引用、返回值的引用。

       1.变量。

<span style="font-size:18px;">void main()

{
int m;
int &n=m; //为变量m引用别名n
m=1;
cout<<"m="<<m<<"n="<<n<<"\n";
n=2;
cout<<"m="<<m<<"n="<<n<<"\n";
}</span>
结果是m=1 n=2

 m=1n=2

对m引用了别名n之后,对m或者n赋值,结果都是一样的。需要注意的是只是起了别名,并没有分配新的内存空间。

          2.参数。

<span style="font-size:18px;">void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用
{ int p; p=p1; p1=p2; p2=p; }
main( )
{
 int a,b;
 cin>>a>>b; //输入a,b两变量的值
 swap(a,b); //直接以变量a和b作为实参调用swap函数
 cout<<a<< ' ' <<b; //输出结果
}</span>
输入1和2时,输出结果为1和2。

得出:传递引用和传递指针效果是一样的。这时被调用函数的形参就成为调用函数的变量的别名来使用,对于形参的操作就相当于对目标变量的操作。

         3.返回值。

格式:类型标识符 &函数名(形参列表及类型说明)
{函数体}

<span style="font-size:18px;"><span style="color:#494949;">int a[]={1,3,5,7,9};
int &index(int); //声明引用函数
void main()
{
index(2)=25; //将a[2]重新赋值
cout<<index(2)<<endl;
}
int &index(int i)
{
return a[i];
}</span></span>
运行结果为25。这说明第三个元素被改成了25。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值