Programming(109)
-
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 -
Ch06. 복합데이터 - 05. 구조체
1. 구조체(struct)서로 관련된 여러 개의 변수(데이터)를 하나로 묶는 사용자 정의 자료형으로 예를 들어, 이름, 나이, 키 등의 변수를 학생(Student) 이라는 단위로 묶어놓은 것이 구조체라고 할 수 있다.클래스(class)와 매우 유사하지만, 기본 접근 지정자가 다르다. 2. 구조체의 정의구조체를 정의하는 기본적인 방법은 아래와 같이 struct 구조체명 { 타입 멤버변수명1; 타입 멤버변수명2; . . . .};생성해주면 된다. 구조체 정의 생성의 예는 아래와 같고struct Student { std::string name; int age; double height;}; 이 구조체는 Student 라는 구조체로 Student, 학생으로써 가질 수 있는 데이터..
2025.04.02