c – 引用 – const指针

前端之家收集整理的这篇文章主要介绍了c – 引用 – const指针前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在很多地方读过有关参考文献的内容

Reference is like a const pointer

Reference always refer to an object

Once initialised,a Reference cannot be reseated

我想在最后一点说清楚.那是什么意思?

我试过这段代码

#include <iostream>
int main()
{
    int x = 5;
    int y = 8;

    int &rx = x;
    std::cout<<rx<<"\n";

    rx = y;    //Changing the reference rx to become alias of y
    std::cout<<rx<<"\n";
}

产量

5  
8

那么“引用无法重新定位”是什么意思?

解决方法

这一行:
rx = y;

不要使rx指向y.它使x的值(通过引用)成为y的值.看到:

#include <iostream>

int main()
{
    int x = 5;
    int y = 8;

    int &rx = x;
    std::cout << rx <<"\n";

    // Updating the variable referenced by rx (x) to equal y
    rx = y;    
    std::cout << rx <<"\n";
    std::cout << x << "\n";
    std::cout << y << "\n";
}

因此,在初始赋值之后无法更改rx引用的内容,但您可以更改所引用事物的值.

因此,对于此示例,引用类似于常量指针(其中指针地址是常量,而不是该地址处的值).但是有一些重要的区别,一个很好的例子(正如Damon所指出的那样)是你可以将临时值分配给本地const引用,编译器会延长它们的生命周期以保持引用的生命周期.

关于引用和常量指针之间差异的更多细节可以在this SO post的答案中找到.

原文链接:https://www.f2er.com/c/117131.html

猜你在找的C&C++相关文章