C++ 引用 (交换两个数的值)

编程入门 行业动态 更新时间:2024-10-14 10:37:50

C++ 引用 (交换两<a href=https://www.elefans.com/category/jswz/34/1769671.html style=个数的值)"/>

C++ 引用 (交换两个数的值)


C++中引用能够将很多问题在同级上解决,不会开辟新的空间。

在C中是没有引用这个定义的,这也是C++中的一个特色。


通过一个swap函数来简单的了解引用。


/*************************** 通过引用交换两个数的值*(类型)&(变量名)=(所引用的变量)* * 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。* 引用的声明方法:类型标识符 &引用名=目标变量名;* 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名* 说明:* (1)&在此不是求地址运算,而是起标识作用。* (2)类型标识符是指目标变量的类型。* (3)声明引用时,必须同时对其进行初始化。* (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,* 且不能再把该引用名作为其他变量名的别名。*  ra=1; 等价于 a=1;* (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的* 一个别名,它本身不是一种数据类型,因此* 引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是* 对目标变量求地址。&ra与&a相等。* (6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法* 建立一个数组的别名。**************************/#include <iostream>using namespace std;
void swap(int &ra,int &rb)
{ra^=rb;rb^=ra;ra^=rb;
}
//void swap(int *pa,int *pb)
//{
//    *pa^=*pb;
//    *pb^=*pa;
//    *pa^=*pb;
//}
void swap(char* &p, char* &q)
{char *t = p;p = q;q = t;
}
int main()
{int a=2,b=5;int &aa=a;//这里的aa即为a的引用  int &bb=b;cout<<" aa = "<<aa<<" bb = "<<bb<<endl;swap(a,b);cout <<" a = " << a << " b = " << b << endl;char *p = "china";char *q = "america";cout <<" p = "<<p<<" q = "<<q<<endl;swap(p,q);cout <<" p = "<<p<<" q = "<<q<<endl;return 0;
}


对于引用的传值

/** 对于引用的表达式传递必须加const* 引用的值改编会使被引用值也发生改编***/#include <iostream>using namespace std;void func1(int ref)
{cout<<ref<<endl;
}void func2(int &ref)//对于引用的表达式传递必须加const,如func3
{cout<<ref<<endl;
}void func3(const int &ref)
{cout<<ref<<endl;
}int main()
{int  a=200;int  b=100;int &aa=a;aa=4;     //引用的值改编会使被引用值也发生改编cout<<a<<endl;//这里会得到4func1(a+b);
//    func2(a+b);//错误!func3(a+b);return 0;
}



更多推荐

C++ 引用 (交换两个数的值)

本文发布于:2024-02-16 18:37:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1691079.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:个数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!