본문 바로가기

전체 글21

c++ 기초 - 배열 (array) 배열이란? 같은 자료형의 데이터가 연속적으로 이어져 있는 형태이다. 선언 대괄호를 사용해 배열 변수와 크기를 지정한다. (이때 크기의 경우 컴파일 타임 상수여야한다. non const variable과 런타임 상수는 사용 X) 자료형 이름[개수]; int numbers[10]; // non const variable int length; int numbers[length]; // 에러! // 런타임 상수 int temp = 5; const int length = temp; int numbers[length]; // 에러! ❗ 여기서 배열 변수의 이름은 "배열의 시작 주소"를 가리킨다. 정확하게는 시작 위치를 가지는 자료형* 포인터라고 볼 수 있다. 접근 그럼 배열에 값을 어떻게 넣고 가져오게 될까? 크게.. 2024. 2. 4.
c++ 기초 - 참조형 변수 여태까지 일반 값 타입 변수와 포인터 변수까지 살펴보았다. 값 타입 변수: 값 보유 포인터 변수: 다른 값의 주소 보유 이번에 살펴볼 변수는 참조형 변수이다. 참조형 변수 참조형은 다른 객체 또는 값의 별칭으로 사용되는 c++ 타입이다. 즉, 변수에 또 다른 이름을 부여한 것이라고 볼 수 있다. 한편, 로우레벨 관점에서 보면 실제 작동 방식은 포인터와 동일하다. (그래서 함수 매개 변수로 전달 될 때 주소 전달 방식으로 동작한다!) 선언 기존에 주소를 나타낼때 &(앰퍼샌드) 기호를 사용하였다. c++에서는 참조를 뜻하는 의미로도 사용하게 된다 (타입을 식별하기 위한 식별자로서 사용). 따라서 참조 변수는 저장하는 변수와 같은 메모리를 참조하게 된다. 자료형& 참조변수명 = 변수명; int number =.. 2024. 2. 4.
c++ 기초 - 포인터 여태까지는 값을 저장하는 변수를 사용해왔다. 이는 메모리에 있는 특정 주소에 원하는 값을 넣어주는 식으로 동작했다. 한편, 함수로 변수를 넘겨 받았을 때 원본을 수정해야하는 경우 등 특정 메모리에 있는 값을 직접적으로 수정해야할 때가 있다. 이로 인해 포인터를 사용하게 된다! 포인터 변수 포인터는 메모리 주소를 저장하는 변수이다. 포인터는 시스템에 맞춰 고정된 크기를 가진다. (요즘은 대부분 64 bit라 8 byte의 크기를 할당받는다!) 선언 포인터 변수는 자료형에 *을 붙여 선언한다. 자료형* 포인터이름; 값 할당의 경우 주소 연산자(&)를 사용해 특정 변수의 주소를 가져와 넣어준다. 주소 연산자(&)는 변수에 할당된 메모리 주소를 반환해주는 연산자이다. (변수 타입에 따라 type*을 반환해준다... 2024. 2. 3.