C11 배열과 포인터 1차원/다차원 배열, 문자열, 함수와 배열 인수학습 목표배열(array) 의 메모리 특성과 선언/초기화/순회 방법을 정확히 이해한다.2차원/3차원 배열 의 행·열(면) 개념과 초기화 규칙을 익힌다.문자열과 char 배열 의 관계(널 문자 '\0')를 정확히 다룬다.함수 매개변수로 배열 전달 시의 규칙(첫 차원 생략, 포인터로의 decay)을 이해한다.1. 배열 개념 핵심배열(array): 동일 자료형의 값들을 연속적 메모리에 저장하고 하나의 이름으로 관리하는 변수.요소 접근: 0부터 시작하는 인덱스로 접근 (a[0], a[1], …).연속 저장이므로 순차 처리(합계, 최댓값, 탐색, 정렬)에 캐시 친화적이고 효율적.주의: 범위를 벗어난 접근(Out-of-Bounds) 은 미정의 동작(UB) 이며, 다른 .. 2025. 11. 11. 함수와 기억 클래스 함수 개념·표준함수·사용자 정의 함수학습 목표함수의 필요성과 장단점 이해표준 라이브러리 함수의 역할과 사용 방법 이해사용자 정의 함수의 정의/호출/반환/원형(prototype) 개념 정복1. 함수의 개념1) 왜 함수인가중복 제거: 같은 로직을 여러 번 쓰지 않고 재사용가독성/유지보수: 큰 문제를 작은 작업 단위로 분할재사용성: 다른 프로그램에서도 활용 가능비용(단점): 호출/복귀 오버헤드가 존재2) 함수란?특정 작업을 수행하는 독립적인 코드 블록호출 시 인수(Arguments) 를 전달 → 내부에서 처리 → 결괏값(Return Value) 을 돌려줌프로그램은 여러 함수들의 조합으로 구성됨3) 함수 호출 흐름(중첩 가능)main → f() → g(), h() … 식으로 다른 함수 호출 가능호출이 끝나면 호.. 2025. 11. 11. 선택 제어문과 반복 제어문 1. C 언어의 기본적인 흐름 제어1.1 문장(Statement)C 프로그램의 기본 실행 단위선언문: 변수, 자료형 등을 선언 → 예: int a;실행문: 실제 동작 수행 → 예: a += 10;실행문은 함수 안에서만 작성 가능세미콜론(;) 으로 끝나야 함기본 실행 순서는 순차적이지만, 흐름 제어문으로 변경 가능1.2 흐름 제어 구조의 3가지 형태순차 제어: 위에서 아래로 순서대로 실행선택 제어: 조건에 따라 분기반복 제어: 일정 조건 동안 반복2. 선택 제어문 (Selection Statements)2.1 종류if 문switch 문2.2 if문(1) 단순 if문if (조건식) 실행문;조건식이 참(true) 이면 실행, 거짓이면 건너뜀여러 문장을 하나로 묶으려면 블록 { ... } 사용if (a (.. 2025. 11. 11. 입.출력 함수와 연산자 C 프로그래밍: 표준 입출력과 연산자(1)0) 학습 개요C는 다양한 연산자(산술·관계·논리·대입·비트 등)를 제공합니다.또한, 표준 입출력(stdin/stdout) 을 통해 콘솔과 상호작용합니다.본 정리에서는 입출력 함수 사용법, 연산자 우선순위/결합 방향, 형 변환의 실무 포인트를 요약합니다.1) 표준 입출력(Standard I/O)1-1. 개념stdin // 표준 입력(키보드 등)stdout // 표준 출력(콘솔)stderr // 표준 에러(오류 메시지 전용)1-2. printf(형식화된 출력)#include int main(void) { char c = 'A'; int i = 10, j = 20; long long big = 1234567890123LL; double d = .. 2025. 10. 22. 자료형과 선행처리기 자료형과 선행처리기1) 자료형자료형(data type) = 값을 어떻게 비트로 표현·저장·연산할지에 대한 약속.이유: 같은 “숫자”라도 타입에 따라 범위/연산/메모리 크기/해석이 달라짐.2) C의 주요 자료형정수형: char, short, int, long, long long(각각 signed/unsigned 가능)char는 signed(-128~127bits)인지 unsigned(0~255bits)인지 구현 정의(플랫폼마다 다름).sizeof(char) ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long) ≤ sizeof(long long) 만 보장. 정확한 바이트 수는 표준이 고정하지 않음.실수형: float, double, long double보통 IEEE-754를 따르지.. 2025. 10. 13. C 언어의 개요 01강 정리: C 언어의 개요1. 프로그래밍과 프로그래밍 언어프로그래밍: 컴퓨터가 작업을 수행하기 위해 실행해야 하는 명령을 작성하는 행위.프로그래밍 언어의 세대1세대 (기계어): 0과 1로 구성된 명령, 하드웨어 직접 제어.2세대 (어셈블리어): 기계어를 기억하기 쉽게 기호화, 어셈블러 필요.3세대 (고급언어): 사람이 이해하기 쉬운 구조(C, C++, Java, Python 등).→ 컴파일러 / 인터프리터를 통해 기계어로 변환.2. C 언어의 등장과 발전탄생: 1972년, 벨 연구소 Dennis Ritchie가 Unix 운영체제 개발을 위해 고안.특징범용 고급언어: 이식성 높고 표준 라이브러리 제공.시스템 프로그래밍 적합: 하드웨어 제어 가능, 빠른 실행 속도.간결한 문법 구조.발전 과정ALGOL60.. 2025. 8. 27. 모두를 위한 컴퓨터 과학(하버드CS50 2019)(4) 문제 코드 분석 #include int main(void){ int *x; int *y; x = malloc(sizeof(int)); *x = 42; *y = 13; // ❗ 버그 발생} 1. 무엇이 문제인가?int *x; int *y;는 포인터 변수만 선언했을 뿐 아무 메모리도 가리키지 않습니다.x = malloc(sizeof(int));를 해서(*x에 값을 넣는 건 이제 가능) x는 새로운 메모리 공간을 가리킵니다.하지만 y는 여전히 어디를 가리키는지 모르는 “쓰레기 주소” 를 가지고 있습니다.x → [메모리 공간: OK]y → [쓰레기 값: 위험]그런데 *y = 13;로Segmentation Fault (메모리 접근 오류) 가 터질 수 있습니다.y가 가리키는(아무거나) .. 2025. 4. 29. 모두를 위한 컴퓨터 과학(하버드CS50 2019)(3) 16진수 (Hexadecimal, Hex)16진수는총 16개 기호를 사용해서 수를 표현합니다.0 ~ 9 그리고 A(10), B(11), C(12), D(13), E(14), F(15)까지10진수로 255는 16진수로 FF입니다.16진수를 구분하기 위해 숫자 앞에 "0x"를 붙여 사용합니다. 1 Byte와 16진수1 byte = 8 bit8 bit로 나타낼 수 있는 최대 수:2^8 = 256 (0부터 255까지)이 256개의 값을 16진수 2자리로 표현할 수 있습니다.예: 0x00 ~ 0xFF읽을 때는 “one zero” (16진수 10)처럼 읽어야 하고,10진수의 “ten”과 헷갈리면 안 됩니다.RGB 색상에서 16진수웹 색상(RGB)은 16진수로 표현합니다.#FFFFFF → 흰색 (255, 255, 2.. 2025. 4. 29. 모두를 위한 컴퓨터 과학(하버드CS50 2019)(2) 자료형과 메모리 크기C 프로그래밍에서는 모든 데이터는 메모리에 저장되고, 자료형(Data Type) 에 따라 필요한 메모리 크기가 결정된다.bool1 byte참/거짓 값char1 byte하나의 문자 (예: ‘A’)int4 bytes정수float4 bytes소수점 수 (정밀도 낮음)long8 bytes아주 큰 정수double8 bytes더 높은 정밀도의 소수string? bytes문자들의 집합 (문자 배열)string은 문자(char)의 배열이기 때문에, 크기는 문자열 길이에 따라 달라진다. (문자 수 + 1(널 문자 ‘\0’) 만큼 바이트를 사용)컴퓨터 메모리와 바이트 개념RAM은 컴퓨터에서 프로그램을 실행할 때 데이터를 저장하는 임시 기억장치이다.RAM은 수십억 개의 비트(bit) 들로 구성되어 있다... 2025. 4. 28. 이전 1 2 다음