代码之家  ›  专栏  ›  技术社区  ›  semicolon_missing

指针的常量引用

  •  0
  • semicolon_missing  · 技术社区  · 2 年前

    当我有一个对指针的常量引用时,为什么我能改变指针指向的对象的值,这个例子中的常量意味着什么, 存储在指针中的地址不能更改,因为引用是常量。 但是我们可以改变指针通过引用指向的对象的值

    #include <iostream>
    
    int main(){
        int n = 5;
        int *ptr = &n;
        const auto &refOfPtr = ptr; 
        *refOfPtr = 10;
        std::cout << n << std::endl;
        
    }
    
    Output : 10
    
    1 回复  |  直到 2 年前
        1
  •  2
  •   Toby Speight    2 年前

    您有一个指向指针的const引用,因此无法更改它指向的位置。即 refOfPtr int * const & ,对指向(可变)整数的常量指针的引用。

    但它指向一个可变对象,因此您可以通过该指针更改该对象的内容。