2026/05/31 3

참조자(Reference)

레퍼런스 (Reference)레퍼런스(Reference)는 변수의 또 다른 이름(별명, Alias)이다.레퍼런스는 새로운 메모리를 생성하는 것이 아니라기존 변수의 메모리를 그대로 사용한다.즉, 같은 메모리를 다른 이름으로 접근하는 방식이다.포인터와 다르게 주소를 저장하는 변수가 아니며반드시 이미 존재하는 변수와 연결되어야 한다.그렇기 때문에 선언과 동시에 초기화가 필요하며참조할 변수가 없으면 문법 오류가 발생한다.레퍼런스 선언int a = 10;int& r = a;여기서a : 원본 변수r : a의 레퍼런스(별명)잘못된 예시int& r;컴파일 오류 발생레퍼런스는 반드시 참조할 대상이 필요하기 때문이다.메모리 관점에서 보기int a = 10;int& r = a;메모리 구조주소 변수 값100..

c++/기초 2026.05.31

포인터

포인터 (Pointer)포인터(Pointer)는 메모리의 주소(Address)를 저장하는 변수이다.일반 변수는 값을 저장하지만,int a = 10;포인터는 주소를 저장한다.int* p = &a;변수는 메모리 공간이다int a = 10;이 코드를 실행하면 메모리 어딘가에 공간이 생성되고 그 공간은메모리 내 변수의 위치정보를 알리기 위한 주소를 가진다.예시:주소 변수 값1000 a 10변수 이름 : a주소 : 1000값 : 10실제 사용될 때의 주소의 형태는 다르지만 이해를 위해 주소를 1000 이라고 가정한다.컴퓨터는 주소를 사용한다사람이 적을때a = 20;컴퓨터가 하는 동작1000번지에 저장된 값을 20으로 변경즉, 컴퓨터 입장에서는 변수 이름보다 주소가 더 중요하..

c++/기초 2026.05.31

매크로

#define 매크로#define은 전처리기(Preprocessor) 지시문이다.컴파일하기 전에 코드의 특정 문자열을 다른 값으로 치환할 수 있다.#define 이름 값예시:#define MAX_HP 100int hp = MAX_HP;컴파일 전에 다음과 같이 치환된다.int hp = 100;특징컴파일 전에 단순 텍스트 치환변수가 아님타입이 존재하지 않음메모리에 저장되지 않음세미콜론(;)을 사용하지 않음#define PI 3.14매크로 함수함수처럼 사용할 수도 있다.#define SQUARE(x) ((x) * (x))사용 예시:int a = SQUARE(3);컴파일 전에 다음과 같이 치환된다.int a = ((3) * (3));결과:a = 9괄호를 사용하는 이유매크로는 단순 치환이기 때문에 괄호가 없으면 ..

c++/기초 2026.05.31