본문 바로가기

분류 전체보기

(370)
[C++] 참조자(레퍼런스) C언어에서 어떤 변수를 가리키고 싶을 때 반드시 포인터를 사용해야는데 C++에서는 다른 변수나 상수를 가리키는 방법으로 또 다른 방식을 제공한다. 이를 참조자(레퍼런스)라고 부른다. 참조자를 정의하는 방법은, 가리키고자 하는 타입 뒤에 &를 붙이면 된다. int& another_a = a; 위처럼 int형 변수의 참조자를 만들고 싶을 때는 int&를, double의 참조자를 만들고 싶을 때는 double&로 하면 된다. 심지어 int* 와 같은 포인터 타입의 참조자를 만들려면 int*&로 쓰면 된다. 위와 같이 선언함으로써 another_a는 a의 참조자가 되었다. 즉, another_a는 a의 또 다른 이름이라고 컴파일러에게 알려주는 것이다. 따라서 another_a에 어떤 작업을 수행하든 사실상 a에..
[C++] 포인터 포인터를 이해하기에 앞서 모든 데이터들은 메모리 상에 특정한 공간에 저장되어 있다. 편의상 메모리의 특정한 공간을 '방'이라고 하겠다. 각 방에 데이터들이 들어가게 되는 것이다. 한 방의 크기는 보통 1바이트라고 정의된다. 만약 4바이트짜리 int형 변수를 정의한다면 메모리 상의 4칸을 차지하게 된다. 프로그램 작동 시 컴퓨터는 여러 방들에 있는 데이터들을 필요로 한다. 따라서, 어떤 방에서 데이터를 가져올지 구분하기 위해 각 방에 고유의 주소를 붙여주었다. 예를 들어 아래와 같은 int 변수 a를 정의하였다면 특정한 방에 아래 그림처럼 변수 a가 정의된다. int a = 123; 0x152839는 이 방의 시작 주소이다. 16진수로 152839라는 위치에서부터 4바이트 공간을 차지하며 123이라는 값이..