2026/05 25

배열

배열 (Array)같은 자료형의 여러 변수를 하나의 이름으로 관리하기 위한 자료구조이다.배열은 메모리에 연속적으로 저장되며, 각 요소는 인덱스(Index)를 통해 접근할 수 있다.배열 선언기본 문법자료형 배열이름[크기];예시int numbers[5];int형 변수 5개가 연속된 메모리에 생성된다.인덱스는 0부터 시작한다.배열 요소 접근int numbers[5];numbers[0] = 10;numbers[1] = 20;numbers[2] = 30;배열의 첫 번째 요소는 0번 인덱스이다.cout 실행 결과10배열 초기화배열은 {}를 이용하여 초기화할 수 있다.int numbers[5] = { 1, 2, 3, 4, 5 };크기를 생략한 초기화배열 크기를 적지 않아도 초기화한 원소 개수만큼 자동으로 크기가 결정..

c++/기초 2026.05.29

반복문

반복문 (Loop)반복문은 특정 코드가 여러 번 실행되도록 만들 때 사용하는 제어문이다.반복문의 종류는 크게 다음과 같다.forwhiledo-whilefor문정수 기반의 반복 횟수를 제어할 때 사용하는 반복문이다.왜 주로 정수를 사용할까?반복 횟수는 정확해야 한다.float 또는 double은 부동소수점 오차가 발생할 수 있기 때문에 반복 횟수가 예상과 다를 수 있다.for (float i = 0; i 이 경우 10번 반복을 기대했지만 실제로는 다르게 동작할 수 있다.따라서 반복 횟수를 제어할 때는 보통 int를 사용한다.기본 문법for (초기식; 조건식; 증감식){ // 반복될 코드}예시for (int i = 0; i 동작 순서for (int i = 0; i 1단계int i = 0;초기화2단계i ..

c++/기초 2026.05.29

switch

switch하나의 변수 값을 기준으로 여러 경우를 나누어 실행하는 제어문이다.주로 같은 변수에 대해 여러 조건을 비교할 때 사용한다.기본 문법switch (변수){case 1: 실행문; break;case 2: 실행문; break;case 3: 실행문; break;default: 실행문; break;}동작 원리switch의 변수 값과 일치하는 case를 찾아 해당 위치로 이동한 후 코드를 실행한다.int num = 2;switch (num){case 1: cout 실행 결과2번동작 과정switch (2)↓case 2:↓cout ↓break;↓switch 종료break현재 case의 실행을 종료하고 switch문을 빠져나가는 역할을 한다.switch (num..

c++/기초 2026.05.29

조건문(if, else, else if)

조건문if문주어진 조건식의 결과(참/거짓)에 따라 특정 코드를 실행하거나 건너뛰는 제어문이다.기본 문법if (조건식){ // 조건식이 참(true)일 때 실행}특징조건식의 결과가 true이면 코드 블록을 실행한다.조건식의 결과가 false이면 코드 블록을 건너뛴다.C++에서는 0을 제외한 모든 정수 값이 true로 취급된다.if (1){ cout else문if문의 조건식 결과가 false일 경우 실행되는 코드 블록이다.기본 문법if (조건식){ // 조건식이 참(true)일 때 실행}else{ // 조건식이 거짓(false)일 때 실행}예제int hp = 0;if (hp > 0){ cout 실행 결과사망특징if의 조건이 거짓일 때 실행된다.별도의 조건식을 작성하지 않는다.if와..

c++/기초 2026.05.29

연산자

연산자값을 계산하거나 비교하거나 조작할 때 사용하는 기호산술 연산자연산자의미예시+덧셈a + b-뺄셈a - b*곱셈a * b/나눗셈a / b%나머지a % b예시:int a = 10;int b = 3;cout 증감 연산자연산자의미++1 증가--1 감소전위 연산먼저 증가 후 사용int a = 5;cout 결과:6후위 연산먼저 사용 후 증가int a = 5;cout 결과:5이후 a 값:6대입 연산자연산자의미=대입+=더한 후 대입-=뺀 후 대입*=곱한 후 대입/=나눈 후 대입%=나머지 후 대입예시:int a = 10;a += 5;결과:15비교 연산자연산자의미==같다!=다르다>크다작다>=크거나 같다작거나 같다예시:int a = 10;int b = 20;cout 결과:1논리 연산자연산자의미&&AND||OR!NOTAN..

c++/기초 2026.05.22

자료형

자료형반환되는 데이터의 특징정수 자료형자료형크기범위char1byte-128 ~ 127short2byte-32,768 ~ 32,767int4byte-2,147,483,648 ~ 2,147,483,647long4byte-2,147,483,648 ~ 2,147,483,647long long8byte-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807unsigned 정수 자료형자료형크기범위unsigned char1byte0 ~ 255unsigned short2byte0 ~ 65,535unsigned int4byte0 ~ 4,294,967,295unsigned long4byte0 ~ 4,294,967,295unsigned long long8byte0 ~ 18,446,7..

c++/기초 2026.05.22

운영체제

운영체제 (Operating System)운영체제(OS)는 프로그램과 하드웨어를 관리하는 소프트웨어이다.예시:WindowsLinuxmacOS프로세스 관리운영체제는 프로그램이 실행되면 프로세스를 생성한다.역할여러 프로그램을 동시에 실행 가능하게 함CPU 시간을 나누어 사용하게 함 (스케줄링)프로세스 생성 및 종료 관리예시게임 실행브라우저 실행디스코드 실행운영체제가 CPU 사용 시간을 빠르게 번갈아 할당해 동시에 실행되는 것처럼 보이게 한다.메모리 관리운영체제는 프로그램이 사용할 메모리를 할당하고 관리한다.메모리 4영역영역설명Code실행 코드 저장Data전역 변수 / static 변수Heap동적 할당 메모리Stack지역 변수 / 함수 호출파일 시스템 관리운영체제는 파일 저장과 읽기를 관리한다.역할파일 생성파..

c++/기초 2026.05.21

링크 단계

링크 단계 (Linking)링커(Linker)가 여러 개의 오브젝트 파일과 라이브러리를 연결하여 최종 실행 파일을 생성하는 과정링크 단계에서 수행하는 작업오브젝트 파일 병합심볼 해석(Symbol Resolution)주소 할당(Address Assignment)재배치(Relocation)오브젝트 파일 병합컴파일/어셈블 단계에서 생성된 여러 오브젝트 파일들을 하나로 연결하는 과정예시:Player.objEnemy.objGame.obj↓Game.exe심볼 해석 (Symbol Resolution)현재 오브젝트 파일이 참조하는 함수나 변수가 실제 어디에 존재하는지 찾는 과정예시:extern void Attack();Attack();링커는 Attack 심볼이 어느 오브젝트 파일에 있는지 탐색함주소 할당 (Addres..

c++/기초 2026.05.20

심볼과 심볼 테이블

심볼(Symbol)과 심볼 테이블(Symbol Table)외부 라이브러리나 다른 파일에 있는 함수, 전역 변수의 위치를 찾기 위해 사용됨컴파일 과정에서 생성되며, 이후 링크 단계에서 링커가 이를 참조하여 실제 메모리 주소를 연결함심볼 (Symbol)함수나 전역 변수를 식별하기 위한 정보객체 자체가 아니라 객체를 가리키는 이름표 예시void Attack(){}int HP = 100;생성되는 심볼 예시:AttackHP심볼이 포함하는 정보함수/변수 이름섹션 정보오프셋(상대 위치)참조 정보 심볼 테이블 (Symbol Table)심볼들을 저장하는 테이블특징오브젝트 파일 하나당 하나씩 존재컴파일/어셈블 단계에서 생성오브젝트 파일 내부 메타데이터로 저장됨왜 필요한가?다른 파일의 함수나 변수를 사용하려면 위치를 알아야..

c++/기초 2026.05.20

어셈블리 단계

어셈블리 단계 (Assembly)컴파일 단계에서 생성된 어셈블리 코드를 실제 CPU가 실행 가능한 기계어(바이너리 코드)로 변환하는 과정어셈블리 코드를 기계어로 변환함오브젝트 파일(.o, .obj) 생성심볼 테이블(Symbol Table) 생성재배치 정보(Relocation) 생성어셈블러 (Assembler)어셈블리 코드를 기계어로 변환하는 프로그램어셈블리어 → 기계어변환 수행어셈블러의 역할어셈블리 명령어를 CPU 아키텍처에 맞는 기계어로 변환코드와 데이터를 섹션 단위로 분리심볼 테이블 생성재배치 정보 생성섹션 (Section)오브젝트 파일 내부에서 코드와 데이터를 구분하는 영역섹션역할.text실행 코드 저장.data초기화된 전역 변수 저장.bss초기화되지 않은 전역 변수 저장.rodata읽기 전용 데이..

c++/기초 2026.05.20