Programming(219)
-
Ch07. 포인터 - 02. 배열과의 관계
포인터와 배열의 관계에 대해서 알아두기에 앞서 먼저 알아둬야할 부분에 대해서 나열해보도록 하자. 0. 배열과 포인터의 관계를 알기 이전에 알아둬야 할점1) 배열의 이름은 배열의 첫 번째 요소의 주소이렇게 arr을 출력했을때의 값과 &을 붙여 arr의 0번째 요소의 주소값을 확인해보면같은 주소를 출력하는 것을 알 수 있는데 이는 배열의 이름(배열의 변수명)만을 사용할때는 배열의 가장 첫요소의 주소값, 배열의 시작지점의 주소값을 전달한다는 것이다 2) 배열과 포인터는 매우 밀접한 관계를 가지며 서로 거의 동일하게 작동하는 경우가 많음뒤에서 배울 내용이지만 포인터와 배열은 아주 비슷하게 작동한다.먼저 포인터에는 배열의 이름을 전달하면서 주소값을 할당하는 것이 가능한데 arr, 배열의 이름을 사용하는 경우 그것..
2025.04.09 -
Ch07. 포인터 - 01. 포인터의 기본
1. 포인터포인터는 다른 변수나 메모리의 주소를 저장하는 변수로 일반 변수의 경우는 값을 저장하나 포인터는 어디에 값이 있는지(메모리 주소)를 저장한다. C++ 프로그램이 실행되면 변수들이 메모리(RAM)에 저장된다.각 변수는 이 메모리 안에서 고유한 주소를 갖게 되는데int a = 450;이렇게 선언된 변수는 RAM의 어딘가에 저장이 되고 그 어딘가를 특정하기 위한 주소값이 생성된다. 포인터는 이렇게 선언된 변수의 위치를 저장한 주소값을 담을 수 있는 변수인 것이다. 2. 포인터의 선언포인터의 기본적인 선언 방식은타입 * 포인터변수명;과 같이 선언하며 실 사용의 예시를 보자면int * ptr;으로 이 포인터의 경우는 int 타입의 변수 혹은 상수의 주소값을 저장할 수 있는 포인터 변수를 선언한 것이다...
2025.04.08 -
Ch06. 복합데이터 - 09. Range-based for
1. Range-based forC++11에서 도입된 문법으로 배열이나 STL 컨테이너의 원소들을 간결하게 순회할 수 있게 해주는 for문이다. 기존의 for문의 경우는 for (int i = 0; i 이렇게 사이즈를 알아야만 사용할 수 있었던 반면 Range-based for 방식의 경우는for (int value : arr) { std::cout 좀더 간결하고 가독성있게 사용이 가능하다. 기본 문법의 형태는for (변수 : 순회 대상) { // 반복문 본문}로 사용하고 실 사용법은std::arr nums = {1, 2, 3, 4, 5};for (int n : nums) { std::cout 이렇게 사용이 가능하다. 물론 일반 arr의 경우도 해당 방법이 사용이 가능하다.int arr..
2025.04.08 -
Ch06. 복합데이터 - 08. std::array
1. std::arraystd::array는 C++11부터 도입된 고정 크기 배열 컨테이너로, C 배열(int arr[5])의 단점을 보완하면서 STL의 장점(반복자, 알고리즘, 범위 검사 등)을 제공하는 템플릿 클래스이다 std::array를 사용한다면 array라는 라이브러리를 include 해줘야한다.#include 2. 기본 문법std-array의 선언은 아래와 같이 사용한다.std::array 변수이름;실 예시는 std::array arr = {1, 2, 3, 4, 5};와 같이 사용이 된다. 일반 배열은 초기화하면서 선언하는 경우엔 배열의 크기를 지정하지 않아도 초기화하는 값의 길이에 맞춰 크기를 맞췄으나 std::array의 경우는 불가능하다.이는 array자체가 내부적으로 크기를 무조건 ..
2025.04.08 -
Ch06. 복합데이터 - 07. 열거형(enum)
1. 열거형(enum)열거형이란 서로 관련있는 정수, 상수에 이름을 붙여서 사용할 수 있도록 해주는 사용자 정의 자료형이다.예를 들면 에러 코드값(404, 500, 200, 401 등등)이라던가 요일(월요일, 화요일...일요일)과 같이 서로 연관있는 도메인으로 엮인 정수 혹은 상수값을 묶어주는 자료형이라고 보면 된다.2. 열거형의 정의 및 선언1) 열거형의 정의 열거형은 enum이란 명령어를 사용해서 정의를 하는 데 방식은 아래와 같다.enum 열거형이름 {값1, 값2, 값3,...}; 예시를 보여주자면 enum Color { RED, BLUE, YELLOW};와 같이 정의할 수 있다.이렇게 정의된 값의 경우는 순서에 따라서 Default Value로써 enum Color { R..
2025.04.08 -
Ch06. 복합데이터 - 06. 공용체(union)
특정 변수에 대해서 값은 하나만 필요한데 그 하나의 값이 여러개의 자료형일 경우에는 어떻게 해야할까?예를 들어 어떤 품의 ID가 정수형일 수도 문자열일 수도 있는 경우는 어떻게 해야할까?struct Produce { int idGubun; // 어떤 타입으로 값을 받을지 지정하는 멤버변수 int idInt; char idChar[100];};Product p1 = {0, 15};if(p1.idGubun == 0){ std::cout 이렇게 사용하면 id가 int인지 char[]인지를 구분할 idGubun이라는 멤버 변수를 만들어줄 필요가 생기고 각 타입마다 메모리 공간을 차지하는 비효율적인 상황이 발생한다. 이런경우에 공용체라는 타입을 사용하면 된다1. 공용체(union)여러 개의 ..
2025.04.02