Programming(141)
-
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 -
Ch06. 복합데이터 - 04. String
1. std::stringstd::string은 C++ 표준 라이브러리에서 제공하는 문자열 클래스로 C 스타일 문자열(char[], char*)의 단점을 보완한 객체 지향적 문자열 타입이다메모리 자동 관리, 연산자 오버로딩, 편리한 문자열 조작 함수들이 내장되어 있다. std의 string을 사용하기 위해서는 가장 먼저 헤더를 선언해줘야 한다.#include *보통 #include 에도 포함되어 있음2. 사용방법기본적으로 std::string의 사용방법은 std::string 변수명 = 문자열;과 같은 방법으로 사용 가능하며 실 사용 예시를 보자면 std::string s1 = "String";과 같이 사용한다. 3. 주요 기능 및 메서드std::string은 기존에 char[] 의 형태로 구성되어 있..
2025.04.02 -
Ch06. 복합데이터 - 03. 문자열
1. 문자열우리가 기존에 사용했었던std::cout 이런 문자열들은 사실 char str[] = "String";std::cout 이와 같이 문자로 구성된 배열의 일종이다. 이건 실제로char str[] = {'S', 't', 'r', 'i', 'n', 'g', '\0'}과 같이 str에 들어가 있게 된다.그래서 출력을 해보면이렇게 출력되는 것을 알 수 있다.마지막에 빈것은 널문자라고 해서 문자열의 종료 지점을 알려주는 문자로 확인하기 위해서 타입을 int로 바꿔보면이렇게 널문자가 나온다는 것을 알 수 있다. 이 널문자는 문자열을 출력할때 이 문자열이 어디까지 존재하는지를 인식시켜주기 위함이다.그래서 만약에 널문자의 위치에 다른 문자를 끼워 넣은 다음에 str을 출력해보면이런식으로 그 이후의 이상한 문..
2025.04.01 -
Ch06. 복합데이터 - 02. 다차원 배열
1. 다차원 배열2차원 이상의 배열을 의미하며, 배열 안에 배열이 있는 구조라고 생각하면 된다.가장 일반적인 형태는 2차원 배열로 수학시간에 배웠던 행렬과 같은 모습으로 구성된다고 생각하면 된다.C++에서는 정적 배열로 표현되며, 배열의 차원 수가 많아질수록 메모리 접근이 복잡해진다. 2. 이차원 배열의 선언 기본적인 이차원 배열의 선언은 int arr[3][3];과 같이 선언한다. 구체화 해보자면타입 변수명[중첩되는 배열의 갯수][각 배열의 길이];로 와 같이 표현 되며int arr[2][3];의 경우는 int arr[3]+int arr[3]의 형태로 구성된다.2. 이차원 배열의 초기화이차원 배열의 경우는 아래와 같이int arr[2][3] = { {1, 2, 3}, {4, 5, 6}}배열 ..
2025.04.01 -
Ch06. 복합데이터 - 01. 배열(Array)
C++에서 배열(array)은 같은 자료형의 값들을 연속된 메모리 공간에 저장하는 자료 구조로 정적(static)으로 메모리가 할당되기 때문에, 크기가 고정되고 컴파일 타임에 결정되는 배열을 가장 기본적으로 사용한다. 1. 기본 배열의 선언 및 초기화배열의 선언배열의 기본 선언의 형태는 타입 변수명[배열의크기];와 같이 선언한다.int arr [10]; 이때 배열의 크기는 상수로만 올 수 있고 변수를 넣어서 선언은 불가능하다.만약 이렇게 변수를 넣어서 사이즈를 넣기 위해서는 변수를 상수로 전환시켜야만 한다.또 다른 방법으로는 메크로를 사용해서 넣어주는 방법도 있다. 보통 메크로를 사용하는 방법보다는 const로 상수로써 size를 전달하는 방식이 조금 더 많이 사용된다. 배열의 초기화배열의 경우 초기화가..
2025.04.01