今天小编给大家分享一下c++中引用和const关键字怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。引用下面的写法定义了
今天小编给大家分享一下c++中引用和const关键字怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
下面的写法定义了一个引用,并将其初始化为引用某个变量。
类型名 & 引用名 = 某变量名;
int n = 4;int & r = n; // r 引用了n,r的类型是 int &
某个变量的引用,等价于这个变量,相当于该变量的一个别名。
int n = 7;int & r = n;// r 引用了n,r和n就是一回事r = 4;cout << r;// 输出4cout << n;// 输出4n = 5;cout << 4;// 输出5
定义引用时一定要将其初始化成引用某个变量。
初始化之后,它就一直引用该变量,不会再引用别的变量了。
引用只能引用变量,不能引用常量和表达式。
double a = 4, b = 5;double & r1 = a;// r1引用了adouble & r2 = r1;// r2也引用了ar2 = 10;// a修改为10cout << a << endl;// 输出10r1 = b;// 用b的值对r1进行赋值,并非r1改为引用b,因为引用是“从一而终”的cout << a << endl;// 输出5
定义引用时,前面加const关键字,即为“常引用”。
int n;const int & r = n; // r的类型是const int &
不能通过常引用去修改其引用的内容:
并不是说引用的内容不能被修改
int n = 100;const int & r = n;r = 200; // 编译错误n = 300; // ok
常引用和非常引用的转换
const T &和T &是不同的类型。
T &类型的引用或T类型的变量可以用来初始化const T &类型的引用。
const T类型的常变量和const T &类型的引用则不能用来初始化T &类型的引用,除非进行强制类型转换。
const int MAX_VAL = 23;const double PI = 3.14;const string NAME = "Tommy";
不能通过常量指针修改其指向的内容,但内容本身可以被修改,且常量指针的指向可以变化。
int n, m;const int *p = &n;*p = 5;// 编译错误n = 4;// okp = &m;// ok,常量指针的指向可以变化
不能把常量指针赋值给非常量指针,反过来可以。
const int *p1;int *p2;p1 = p2;// okp2 = p1;// errorp2 = (int*)p1;// ok,强制类型转换
[注] 因为常量指针对其所指向的内容没有修改权限,自然也不能赋予别的指针这样的权限。否则,非常量指针接收常量指针的赋值之后,便可以修改所指向的内容了,这存在一定安全隐患。
函数参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容。
void MyPrintf(const char *p){strcpy(p, "this"); // 编译出错printf("%s", p);// ok}
不能通过常引用修改其引用的变量
int n;const int & r = n;r = 5; // errorn = 4; // ok
以上就是“C++中引用和const关键字怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。
--结束END--
本文标题: C++中引用和const关键字怎么用
本文链接: https://www.lsjlt.com/news/321980.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0