본문 바로가기

전체

(363)
[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등 보조 기억 장치에 저장되어 영구히 보관할수있다..
[C++ 때려 잡기] C++ 기초강의 2-advanced-2 헤더와 CPP, 디폴트 파라미터, static 변수 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-4 재귀함수2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-advanced-1 랜덤 1. 헤더와 cpp 함수의 선언과 정의를 따로 나눠놓아도함수가 많아지면 main 함수..
[C++ 때려 잡기] C++ 기초강의 2-advanced-1 랜덤 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference2018/08/26 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-4 재귀함수주사위 게임, 로또등실생활은 확률과 랜덤으로 가득 차있다. C++에서는 이러한 랜덤 상황을 어떻게 표현하는가? 1. 랜덤랜덤을 표현하는 방법 rand() 함수 사용 : 0 ~ RAND_MAX까지의 난수를 발생..
[C++ 때려 잡기] C++ 기초강의 2-4 재귀함수 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference 우리가 만든 함수를 여러번 실행시키기 위해서는그냥 여러번 쓰면되지만 우리는 이미 반복문을 배웠기때문에 반복문을 통하여 함수를 반복하여 실행시킬수가 있다. for문과 while문으로 함수를 반복하여 사용가능한데함수의 반복의 경우 특수한 방법이 하나 더 존재한다. 바로 재귀를 이용하는것이다. 1. 재귀재귀(recurs..
[C++ 때려 잡기] C++ 기초강의 2-3 call by value / call by reference 2018/08/24 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의2018/08/25 - [교육 노트/C++ 기초강의] - [C++ 때려 잡기] C++ 기초강의 2-2 함수 오버로딩 지금까지의 내용들은 이해하기 어려운 내용들은 아니였으나이번 강의는 조금 컴퓨터적 사고가 필요해서 어렵게 느껴질 수도 있다. 해당 내용을 가르치기 전에 swap을 배워보자 1. swap (스왑)swap은 변수 2개의 내용을 바꿀때 자주 사용하는 용어이다.두 변수 x = 10; y = 20;일 때 이 두 변수를 x = 20, y = 10 으로 바꾸는 (서로 교환하는) 방법은? 한번 해보자 int x = 10; int y = 20; x = y; y = x; 처음 생각하면 이런식..