C++(cpp)

[cpp] 참조자(&)

Jueun Park 2021. 6. 21. 16:22

사용예시 1

    int a;
    int *a_ptr;
    int *&another_a_ptr = a_ptr;

    a_ptr = &a;
    a = 1;
    std::cout << "a is " << a << std::endl;
    *(a_ptr) = 5;
    std::cout << "*(a_ptr) is " << *(a_ptr) << std::endl;
    *(another_a_ptr) = 10;
    std::cout << "*(another_a_ptr) is " << *(another_a_ptr) << std::endl;

 

사용예시2

#include <iostream> // standard input, output

int main()
{
    const int &ref = 4;
    int num;

    num = ref;
    std::cout << "num is " << num << std::endl;
}

 

사용예시3

#include <iostream> // standard input, output

int main()
{
    int nums[10];
    int (&nums_ref)[10] = nums;

    for (int i = 0; i < 10; i++)
        nums[i] = i;

    for (int i = 0; i < 10; i++)
        nums_ref[i] = 10 - nums[i];

    for (int i = 0; i < 10; i++)
        std::cout << nums[i] << std::endl;
}

 

사용예시4

int main() {
    int tmp_num = 5;
    int& num = tmp_num;

    std::cout << tmp_num << std::endl;
    std::cout << &tmp_num << std::endl;
    std::cout << &num << std::endl;
}

 

사용예시5

    const int& num = 5;

    std::cout << num << std::endl;
    std::cout << &num << std::endl;

 

사용예시6

    int num = 5;
    int *num_ptr = &num;
    int *&another_ptr = num_ptr;

    std::cout << num_ptr << std::endl;
    std::cout << &num_ptr << std::endl;
    std::cout << another_ptr << std::endl;
    std::cout << &another_ptr << std::endl;