본문 바로가기

교육 노트/C++ 기초강의

(22)
[C++ 때려잡기] C++ 기초강의 5 링크드 리스트와 자료구조 2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT 이전에 동적할당을 배웠다 학생 관리 프로그램을 짠다고 했을때 이미 정해진 숫자의 회원을 관리할 때 User user_arr[10]; 회원의 수가 프로그램 실행 도중에 정해질 때 User* user_arr = new User[number]; 까지는 알고있을것이다. 그러나 회원의 수가 프로그램 실행 도중 계속 추가될 때, 얼만큼 들어올지 알지도 못할때 이럴때는 어떻게 해야할까?그냥 사이즈를 엄청나게 크게 잡아놓고 있어야할까? 또 동적할당 하면 되는건가? 기존의 배열을30명의 유저에서 31명으로 늘어나면 31명 배열을 만들고 기존의 30명을 복사한 뒤 1명을 추가한다. -> 수가 늘어날 때마다 다시 배열을 할당하고 복사를 수행하고..
[C++ 때려잡기] C++ 기초강의 4-advenced 정렬과 탐색 2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-2 배열과 다중배열2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-3 마침내 포인터, 포인터 기초2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-4 포인터와 배열의 상관관계, call by pointer2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-5 동적할당 정렬 (소팅) 이란 Sorting (정렬) 데이터를 특정한 조건에 따라 일정한 순서가 되도록 다..
[C++ 때려잡기] C++ 기초강의 4-5 동적할당 2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-2 배열과 다중배열2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-3 마침내 포인터, 포인터 기초2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-4 포인터와 배열의 상관관계, call by pointer 한 반을 관리하는 프로그램을 만들때학생 배열을 만들것이다. 그러나 각 반마다 학생수가 달라학생수를 입력받아 배열을 만들기로 하였다 #include using namespace std; struct Stu..
[C++ 때려잡기] C++ 기초강의 4-4 포인터와 배열의 상관관계, call by pointer 2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-2 배열과 다중배열2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려잡기] C++ 기초강의 4-3 마침내 포인터, 포인터 기초 기존에 배열의 이름에 [index] 를 붙여 해당하는 변수를 사용해왔다그러면 배열의 이름 자체는 무엇일까? 여기서 배열과 포인터의 상관관계가 나온다 1. 배열과 포인터의 상관관계 ps. 정확히는 포인터 변수도 아니고 포인터 상수라고 부르며(변경불가능) 포인터 상수도 정확한 표현은 아니지만 주소값을 가르키므로 포인터라고 생각하고 있으면 편하다. 배열의 이름..
[C++ 때려잡기] C++ 기초강의 4-3 마침내 포인터, 포인터 기초 2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 4-1 간단한 구조체2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 4-2 배열과 다중배열 이번강의는 포인터이다. 포인터를 처음에는 이해하기 어려워하지만 알고 보면 어렵지않다. 1. 포인터란? 라고 한다. 아니 이게 무슨소리냐고? 포인터란한마디로 주소값을 저장하는 자료형이다 다시 말하자면 주소값을 저장하는 자료형이다또 다시 말하자면 주소값을 저장하는 자료형이다 즉 포인터는 주소값을 저장하는 자료형이다 그림으로 살펴보면 즉 여기서는 포인터가 메모리의 주소값 1004를 저장하고있는 자료형이 되는것이다.또한 그 주소에 가면 저장된 값이 int 형식이므로 int형 포인터이..
[C++ 때려잡기] C++ 기초강의 4-2 배열과 다중배열 2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 4-1 간단한 구조체 배열에 관해서는 이전에 간단히 배워본적이있다. 이런식으로 배열을 만들때 메모리 관점에서 어떻게 동작하는것일까? 1. 배열의 메모리 배열은 특정 자료형 여러개를 한번에 관리하는것이다그래서 4바이트 int를 5개 만들면 20바이트를 사용하고이 5개의 int는 메모리상에서 연속되어있다. 기본적으로 메모리는 1바이트 단위로 관리되며1바이트 단위로 위치정보 (주소값)을 가지고있다. 이는 컴퓨터에서 관리하여 처음 요소가 메모리의 주소 1000번에 저장되었다면 그다음 값음 1004번에 저장되는것이다. (4바이트 이므로) 초기화를 하면 다음과같이 된다. 그럼 8바이트를 가지는 double은 어떻게 저장될..
[C++ 때려잡기] C++ 기초강의 4-1 간단한 구조체 2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT4차 강의 제목은배열과 포인터이다. 배열은 기존에 배웠던 그 배열이지만 더욱 심화로 배울것이고마침내 C언어의 꽃이자 알파이자 오메가, 꿀잼 포인터가 테마이다우리는 C++이지만 C++도 OOP전에는 사실상 핵심 개념이다. 하지만 그전에 머리도 식힐겸 간단한 구조체부터 설명하도록 하겠다. 1. 구조체구조체란 하나 이상의 변수를 그룹 지어서 만든 사용자 정의 자료형이다사용자 정의 자료형이란 C++에서 기본적으로 제공하는 자료형이 아니지만자료형으로 쓰기위해 우리가 직접 만든 자료형이란 의미이다. 이런 개념이 왜 필요하느냐 하면 예를들어 학생100의 정보 관리 프로그램을 제작할 때 각각의 학생은 이름, 학번, 나이 … 등의 여러 가지 ..
[C++ 때려 잡기] C++ 기초강의 3 파일입출력 기초 2018/08/23 - [교육 노트/C++ 기초강의] - C++ 기초 강의 OT 지금까지 만든 프로그램들은 프로그램을 종료하면 모든 데이터가 날라가는 형식이었다.그러나 우리가 사용하는 다양한 프로그램들을 대부분 저장, 불러오기 기능을 가지고있고이를 통하여 게임랭킹, 각종 정보들을 프로그램을 껏다 켜도 유지되도록 할 수 있다. 이렇게 데이터 저장되는것을 파일이라고 부른다.가장 대표적인 파일이 메모장에서 사용하는 *.txt 파일이다. 1. 파일 기존 프로그램이 대표적으로 exe 확장자를 가지고 있고 실행하면 정보를 메모리 (RAM) 에 기록한다. RAM 은 대표적인 휘발성 메모리이므로 데이터를 영구적으로 저장 할 수 없다.반면 파일의 정보는 하드디스크, SSD등 보조 기억 장치에 저장되어 영구히 보관할수있다..