본문 바로가기

프로그래밍 언어(Programming Language)/C++ Language

프로그래밍 언어에서 Aliasing 이란?

 Aliasing은 같은 메모리 영역에 대한 두가지 서로 구별되는 참조하는 방법이나 이름을 약하게 갖는 것을 말한다. 프로그래밍에서 이것은 위험한 특징이라고 통상 여겨진다. 예를 들어, Fortran에서 Equivalenced variable과 Pascal에서 pointers가 이러한 특징을 가진다. C++에서 이것을 간단하게 구현해보면 다음과 같다.

#include <iostream>

using namespace std;

int main() {
    
    /*
        New value of assinged to *i (Eg *i = 10) change is also visible by data referencing j
    */
    
    int x = 0;
    int *i = &x;
    int *j = &x;

    *i = 10;

    cout<<"value of pointer i : "<<*i<<" | value of pointer j : "<<*j<<endl;
    return 0;
}

결과는 다음과 같다.

포인터 i, j가 참조하는 값 모두 10이 출력되었다.

 

이 영상을 참고하였습니다. 감사합니다.

[1] https://www.youtube.com/watch?v=DLZCvJA1bmk