컴퓨터는 참조가 뭔지 알까?

이동규·2024년 12월 17일

C++

목록 보기
8/16

컴퓨터는 구별할까?

모른다.포인터와 참조는 같은 어셈블리 명령어를 생성한다.
참조는 오직 인간을 위한 것이다.
컴파일러는 참조를 포인터로 바꿔준다.(Memory Indirection) 기계가 이해할 수 있도록

참조형의 특징

참조형의 값은 변경이 불가능하다.그리고 무조건 초기화 해야 된다.
포인터는 NULL값이 될수 있지만 참조형은 NULL값이 불가능하다. 그래서 안전하다.

#include <iostream>
using namespace std;

void swap(int &number1, int &number2)
{
    // 위험한 포인터 연산이 없다.
    int temp = number1;
    number1 = number2;
    number2 = temp;
}

int main(int argc, char const *argv[])
{
    /* code */
    int number1 = 3;
    int number2 = 7;
    int &tempNum = number2; // 무조건 초기화를 해야된다.
    string name = "이동규"; // 자동으로 메모리 해제
    string &nameAddress = name;
    swap(number1, number2);
    printf("%d\n", tempNum);
    cout << number1 << number2 << nameAddress;

    return 0;
}

0개의 댓글