C++

[C++] reference (참조자, 레퍼런스)

코딩준우 2023. 7. 8. 14:52
#include <iostream>


void change_val(int* p){
    *p = 3;
}

void change_val(int& r){
    r = 7;
}


int main(int argc, char** argv)
{
    int number = 5;

    // int &ref_number;  // error: declaration of reference variable 'ref_number' requires an initializer
    int &ref_number = number;
    std::cout << "ref_number : " << ref_number << "\n";
    std::cout << "number : " << number << "\n";
    change_val(&number);
    std::cout << "after change_val(int* p) number : ";
    std::cout << number << "\n";   
    change_val(number);
    std::cout << "after change_val(int& r) number : ";
    std::cout << number << "\n";

    int a  = 10;
    int& ref_a = a;
    int b = 5;
    ref_a = b; // ref_a가 b를 가리키라는 것이 아닌 a = b와 동치
    
    return 0;
}

 

#include <iostream>


int main(int argc, char** argv)
{
    int x;
    int& y = x;
    int& z = y;

    x = 1;
    std::cout << "x : " << x << " y : " << y << " z : " << z << "\n";
    y = 2;
    std::cout << "x : " << x << " y : " << y << " z : " << z << "\n";
    z = 3;
    std::cout << "x : " << x << " y : " << y << " z : " << z << "\n";
    return 0;
}