TOP

강의소개

홈 > 강의소개

C언어

교수 사진

한준탁 교수

한양대학교 대학원 전자계산학과 석사과정
동국대학교 대학원 컴퓨터공학과 박사졸업

학력

한양대학교 대학원 전자계산학과 석사과정
동국대학교 대학원 컴퓨터공학과 박사졸업

강의경력

서울교육대학교
세종대학교
현) 유니와이즈 전임교수

강좌 소개
✅ **C 언어 기초부터 포인터까지 한 번에**:
- 입문 문법, 배열·문자열, 포인터·동적 메모리, 구조체, 파일 I/O를 표준 C 중심으로 단계별 정리합니다.
✅ **대학 교과과정 중심 커리큘럼**:
- 강의-실습-과제를 유기적으로 연결해 자료구조/운영체제 등 상위 전공과 자연스럽게 연계되도록 설계했습니다.
✅ **실습 중심 학습 + 시험/자격 대비**:
- gdb 디버깅, 정적 분석, 프로젝트 빌드까지 다루며 코딩테스트·정보처리(기사/산업기사) 대비 역량을 강화합니다.
교육 대상
🎓 **대학 신입생/편입생**: C 언어를 기초부터 포인터·메모리 모델까지 체계적으로 학습해 전공 수업에 안정적으로 적응하고 싶은 학생.
📚 **컴공/소프트웨어·전기/전자·정보통신 계열 재학생**: 과제·실험·팀프로젝트 수행을 위해 표준 C, 디버깅, 자료구조 기초를 빠르게 보강하려는 학습자.
🏃 **취업·코딩테스트 준비생**: 구현·문자열·자료구조 유형을 C로 훈련하고 실무형 프로젝트 빌드/디버깅 역량을 갖추고 싶은 지원자.
🔬 **임베디드/펌웨어·시스템 개발 지망생**: 저수준 메모리 제어와 효율적 데이터 표현, 견고한 에러 처리 등 현업 필수 역량을 쌓고 싶은 학습자.
교재정보 및 참고문헌
📘 **주교재 (PDF 제공)**:
- 유니와이즈 교수진이 개발한 핵심 개념·예제·실습 과제가 포함된 연구교재를 수강생 전원에게 PDF로 제공합니다.
- 예습/복습과 과제 수행에 충분하며, 강의 흐름에 최적화되어 있습니다.
📖 **참고 문헌 (선택)**:
- 『쉽게 풀어쓴 C언어 Express』 최신 개정판(천인국 저, 생능출판사)
- 『개념을 콕콕 잡아주는 C프로그래밍』(천정아 저, 이한출판사)
(※ 강의는 자체 PDF만으로 충분히 학습 가능하며, 참고서는 개념 확장과 추가 연습에 도움이 됩니다.)

유니와이즈 AI학습의 특징

AI가 이끄는 스마트한 학습 경험, AI 튜터와 함께 더 빠르고, 더 깊게 학습하세요.

📝
AI 자동 요약

긴 강의 내용을 AI가 핵심만 요약하여 복습 시간을 단축시킵니다.

🔑
핵심 키워드 추출

강의에서 가장 중요한 키워드와 개념을 자동으로 추출해 제공합니다.

💡
AI 자동 퀴즈

학습한 내용을 바탕으로 AI가 생성한 퀴즈를 풀며 이해도를 점검합니다.

🤖
1:1 AI 튜터

모르는 부분을 24시간 언제든 AI 튜터에게 질문하고 답변을 받습니다.

커리큘럼

총 17개 챕터, 42강으로 구성되어 있습니다.

커리큘럼
제목 강의시간 상세내용
1장. 프로그래밍의 개념
[1강] 프로그래밍의 개념
0: 55: 06
C 언어 프로그래밍 개념 및 개발 과정
• C 언어 프로그래밍 개념: 컴퓨터 작업 지시를 위한 프로그램 정의 및 기계어부터 고급 언어까지의 프로그래밍 언어 분류와 특징 요약.
• C 언어 핵심 특징: 간결성, 효율성, 이식성을 갖춘 절차지향 언어로 임베디드 시스템 개발에 활용되는 고수준/저수준 프로그래밍 능력 제공.
• 알고리즘 및 개발 과정: 문제 해결을 위한 단계적 절차인 알고리즘 정의, 표현 방법과 요구사항 분석부터 유지보수까지의 체계적인 프로그램 개발 절차 정리.
2장. 프로그래밍 작성 과정
[2강] 프로그래밍 작성 과정
0: 50: 57
C 언어 프로그래밍 작성 과정

• C 언어 IDE 활용: 편집, 컴파일, 실행, 디버깅을 통합한 개발 환경 구축 및 Visual C++를 통한 프로그램 개발 절차 학습
• C 언어 기본 구조 이해: 메인 함수, 전처리기 지시자, printf 함수, 세미콜론 등 핵심 문법 요소로 프로그램 작성
• 오류 수정 및 디버깅: 컴파일/실행/논리 오류 유형 식별 및 디버거(F10, F9)를 활용한 문제 해결 능력 함양
3장. C프로그램 구성 요소
[3강] C프로그램 구성 요소 (1)
0: 23: 53
C 프로그램 구성 요소 (1)

• C 프로그램 기본 구성: 입력-처리-출력 3단계 구조 및 가독성 향상을 위한 주석, 들여쓰기 활용.
• 전처리기와 함수: `#include` 지시어를 통한 외부 파일 포함, 특정 기능 수행 코드 블록인 함수의 구조 및 main() 함수 역할.
• 변수와 식별자: 데이터를 저장하는 메모리 공간(변수)의 자료형 선언 원리 및 유효한 식별자 명명 규칙 적용.
[4강] C프로그램 구성 요소 (2)
0: 51: 15
C 프로그램 구성 요소: 수식, 연산, 입출력 함수
• C 프로그램 기본 구성: 수식, 대입 및 산술 연산자(`+`, `-`, `*`, `/`, `%`)의 기능 및 사용 원리 정리
• 표준 입출력 함수: `printf()`를 통한 모니터 출력, `scanf()`를 통한 키보드 입력 기능 학습
• 형식 지정자: `%d`, `%f`, `%c`, `%s`, `%lf` 등 변수 타입별 형식 지정자 매칭 및 `scanf()` 시 변수 주소(`&`) 활용법 이해
4장. 변수와 자료형
[5강] 변수와 자료형
0: 30: 22
C언어 변수 및 자료형 개념 이해

• C언어 변수 및 상수: 프로그램 데이터 저장 공간 정의, 값의 가변성·불변성 구분 원리 이해
• 자료형 종류 및 활용: 정수·실수·문자형 등 데이터 타입별 메모리 할당 및 효율적 관리 방법 학습
• 변수 이름 규칙 및 선언/초기화: 식별자 작성 원칙과 함수 시작 부분에서 메모리 할당 및 값 부여 절차 이해
[6강] 정수형
0: 49: 45
C언어 정수형 데이터 타입 및 상수

• C언어 정수형: `short`, `int`, `long` 타입별 크기/범위 정의, `unsigned`, `signed` 수식자로 표현 범위 제어.
• 오버플로우: 변수 표현 범위 초과 시 발생하는 순환적 특성 및 컴파일러 경고 부재에 따른 처리 주의.
• 정수/기호 상수: 10/8/16진법 정수 상수 표기법 및 `#define`, `const` 키워드를 활용한 기호 상수 정의 기능.
[7강] 부동 소수점형. 문자형
0: 39: 56
C언어 부동 소수점형 및 문자형 개념 완성

• C언어 부동 소수점형: `float`, `double` 자료형으로 가수와 지수를 통해 실수 범위·정밀도를 표현하며, `%f`, `%e` 형식 지정자로 출력.
• 부동 소수점 오버플로우/언더플로우: 실수 표현 최대/최소 범위 초과(`inf`) 및 미달 시 발생하며, 정확한 자료형 선택으로 오류 방지.
• 문자형 `char`와 아스키(ASCII): 8비트 정수로 아스키 코드(문자-숫자 매핑)를 저장하며, 정수 연산을 활용한 문자 조작 및 출력.
5장. 수식과 연산자
[8강] 수식과 연산자의 개념. 산술·대입 연산자
0: 44: 14
C언어 수식과 연산자의 개념, 산술·대입 연산자

* C언어 수식 및 연산자 개념: 피연산자와 연산자 조합으로 구성, 단항·이항·삼항 연산자 분류와 기능 이해.
* C언어 산술·부호·증감 연산자: 사칙 연산, 부호 변경, 변수 값 1 증가/감소 기능; 정수 나눗셈 버림, 전위/후위 증감 연산 방식 숙지.
* C언어 대입·복합 대입 연산자: 수학적 "="와 다른 할당 기능, 좌변 변수 필수; 코드 간결화를 위한 산술 연산 결합 형태 활용.
[9강] 형변환. 관계·논리 연산자
0: 41: 34
C언어 형변환, 관계 및 논리 연산자

* 형변환 개념: 자동적/명시적 자료형 변환 방식 및 대입/연산 시 자료형 규칙과 값 손실 가능성 분석.
* 관계/논리 연산자: 두 피연산자 비교와 복수 조건 조합을 통한 C언어의 참/거짓(0 이외/0) 판별 원리 및 연산자 종류 활용.
* 단축 계산: `&&`와 `||` 논리 연산에서 효율성을 높이는 피연산자 평가 생략 원리 및 계산량 감소 기법.
[10강] 조건·콤마·비트단위 연산자. 연산자의 우선순위와 결합규칙
0: 55: 24
C언어 연산자: 조건, 콤마, 비트, 우선순위, 결합규칙

• C언어 조건/콤마 연산자: 조건식에 따른 값 선택 및 여러 수식의 순차적 실행 제어.
• C언어 비트 연산자: 비트 단위 논리(AND, OR, XOR, NOT) 및 이동(<<, >>)으로 데이터 직접 조작.
• C언어 연산자 우선순위/결합 규칙: 복합 수식 내 연산 실행 순서 결정 및 정확한 논리 구현.
6장. 조건문
[11강] 제어문. if문. if-else 문
0: 26: 05
C언어 제어문: if문과 if-else문

• C언어 제어문: 프로그램 실행 흐름을 조건적으로 제어하는 if문과 if-else문의 기본 개념 및 동작 원리 이해
• 복합문 (Compound Statement): 중괄호 `{}`를 사용하여 여러 문장을 하나의 블록으로 묶어 조건문에 적용
• 조건식 활용 및 오류 방지: 논리 연산자를 이용한 복잡한 조건식 구성과 세미콜론 오용, 복합문 누락 등의 흔한 오류 방지
[12강] 다중if문. switch문. goto문
0: 52: 14
C언어 다중 if문, switch문, goto문

• 다중 if문: 복합 조건 처리와 if-else 매칭 규칙을 통한 프로그램 흐름 제어 및 가독성 향상.
• switch문: 정수·문자 상수값 비교를 통한 다중 분기, break·default 역할과 fall-through 현상 이해.
• goto문: 프로그램 특정 레이블로의 무조건 분기 기능과 코드 복잡성 유발로 인한 사용 지양 원칙.
7장. 반복문
[13강] 반복문의 개념. while 문
1: 02: 14
C언어 반복문의 개념 및 while문

• **C언어 반복문**: 특정 조건이 참인 동안 코드 블록을 반복 실행하여 프로그램 효율성을 증대하는 제어 구조.
• **while문 개념**: 초기 조건 검사를 통해 반복 실행 여부를 결정하며, 센티널 값을 이용한 데이터 처리 및 유클리드 알고리즘에 활용.
• **while문 구현**: 무한 루프, 중괄호/세미콜론 누락 오류를 주의하고, 조건식의 참(0이 아닌 값)·거짓(0) 평가 원리를 이해.
[14강] do...while 문. for 문
0: 56: 44
C언어 반복문: do...while 문과 for 문

• C언어 반복문: `do...while` 문과 `for` 문을 활용한 코드 블록 반복 제어 원리 이해
• `do...while` 문: 최소 1회 실행 후 조건식을 검사하여 반복 여부를 결정하는 제어 구조 학습
• `for` 문: 초기식, 조건식, 증감식을 활용해 정해진 횟수 반복을 제어하며, 무한 루프 발생 조건 및 응용 방식 학습
[15강] 중첩 반복문. break와 continue
0: 55: 42
C언어 중첩 반복문과 break, continue 문
• 중첩 반복문: 반복문 내 다른 반복문을 포함하는 구조로, 복잡한 패턴 구현 및 외부/내부 루프 제어 변수 관리.
• break문: 현재 속한 반복 루프를 즉시 종료하여 프로그램 흐름을 제어.
• continue문: 현재 반복을 건너뛰고 다음 반복으로 제어를 이동 (for문은 증감식, while/do-while은 조건식으로).
8장. 함수
[16강] 함수 (1)
0: 39: 44
C언어 함수 기본 개념 및 정의

* C언어 함수 개념: 코드 재사용성, 모듈화, 가독성, 유지보수를 위한 프로그램의 기본 구성 요소.
* 함수 정의 구성: 반환형, 함수 이름, 매개 변수, 함수 몸체로 이루어진 고유 작업 단위.
* 함수 종류 및 활용: 라이브러리 함수와 사용자 정의 함수로 분류되며, 정확한 정의와 호출로 유기적 연결.
[17강] 함수 (2)
0: 43: 39
C언어 함수: 호출, 반환, 원형 이해

• C언어 함수: 인수와 매개변수 데이터 전달, 단일 반환값 구조를 통해 코드 모듈화 및 재사용성 구현
• 함수 호출: 정의된 함수를 이름과 인수로 실행하고, 처리 결과값을 호출 위치로 반환하는 절차
• 함수 원형: 컴파일러에게 함수의 이름, 매개변수, 반환형 정보를 미리 알려 컴파일 오류를 방지하는 선언 방식
[18강] 함수 (3)
0: 35: 22
C언어 라이브러리 함수 활용

* C언어 라이브러리 함수: 컴파일러 제공 핵심 기능으로, 코드 중복 제거 및 모듈화를 통한 개발 생산성 향상.
* 난수 및 유틸리티 함수: `rand()`, `srand()`로 의사 난수 생성, `exit()`, `system()`으로 시스템 제어 기능 제공.
* 수학 함수: `math.h` 기반 `abs()`, `pow()`, `sqrt()`, `ceil()`, `floor()` 등 다양한 수학 연산 지원.
9장. 함수와 변수
[19강] 변수의 속성. 범위. 지역 변수. 전역 변수
0: 42: 41
C언어 변수의 속성 및 범위: 지역 변수, 전역 변수

• C언어 변수 속성: 이름, 타입, 크기, 값 및 범위(scope), 생존 시간(life time), 연결(linkage) 개념 정의.
• 지역 변수: 함수/블록 내 유효, 스택에 생성, 블록 종료 시 소멸, 쓰레기 값 초기화 특징.
• 전역 변수: 함수 외부 선언, 프로그램 전역 유효, 0 자동 초기화, 지역 변수와 동일 이름 시 지역 변수 우선.
[20강] 생존시간. 연결. 어떤 저장유형을 사용하여야 하는가
0: 38: 24
C언어 저장 유형과 변수 연결

• C언어 변수 저장 유형: 정적/자동 할당 방식과 변수 생존 시간, 유효 범위 결정 원리
• 저장 유형 지정자(auto, register, static, extern): 변수의 메모리 위치, 접근 속도, 값 유지 특성 제어 방법
• 변수 연결(Linkage): 무연결, 내부 연결, 외부 연결을 통한 변수 공유 및 접근 범위 정의
10장. 배열
[21강] 가변 매개 변수 함수. 순환. 배열. 배열의 초기화
1: 04: 13
C언어 순환, 배열 및 초기화

• 순환 개념: 자기 호출을 통한 문제 해결 기법이며, 팩토리얼처럼 명확한 종료 조건 설정이 필수.
• 배열 정의: 동일 타입 데이터를 효율적으로 관리하는 자료구조로, 0부터 시작하는 인덱스로 원소에 접근하고 반복문 활용.
• 배열 관리: 인덱스 범위 오류를 방지하고 상수 크기로 선언하며, 중괄호를 이용한 초기화로 안정성과 효율성 확보.
[22강] 배열의 응용
0: 58: 10
배열의 응용 (C언어 개념완성)
• C언어 배열 핵심 개념: `sizeof` 연산자로 원소 개수 계산, 배열 복사 및 비교는 `for` 문을 이용한 원소별 1대1 처리.
• 배열 활용 실습: 극장 좌석 예약, 최소값 탐색, 역순 출력, 막대그래프 구현 등 다양한 문제 해결에 배열 적용.
• 배열 고급 기능 및 디버깅: 난수 생성(`rand`, `srand`), 올바른 인덱싱(`N2-1`), 주소 연산자(`&`) 사용 및 코드 오류 수정.
[23강] 배열과 함수. 정렬. 탐색
0: 44: 39
C언어 배열과 함수, 정렬, 탐색 기본 개념
• C언어 배열과 함수: 배열은 참조 호출로 원본이 전달되며 `const`로 변경 방지, 배열 원소는 값 호출로 전달되는 데이터 전달 방식 이해.
• 정렬 알고리즘: 선택 정렬은 최소값 탐색 후 교환하며, 변수 교환은 임시 변수를 활용한 3단계 과정으로 구현하는 원리 습득.
• 탐색 기법: 순차 탐색은 순서 비교 방식이며, 이진 탐색은 정렬된 배열에서 탐색 범위를 절반씩 줄여 효율적으로 고정 데이터를 찾는 방법 학습.
[24강] 다차원 배열
0: 49: 54
C언어 다차원 배열의 개념 및 활용

* 다차원 배열 개념: C언어 N차원 데이터 구조를 행/열 인덱스로 표현하며, 메모리 효율을 고려하여 3차원 이상은 제한적으로 사용.
* 다차원 배열 선언 및 초기화: 첫 인덱스 생략 가능, 나머지 인덱스 크기 필수 지정하며, 중괄호로 초기값 설정 시 부족분은 0으로 채움.
* 다차원 배열 데이터 처리 및 함수 전달: 차원에 맞는 이중/삼중 루프를 활용하며, 함수 인수로 전달 시 첫 인덱스 외 나머지 크기는 필수 지정.
11장. 포인터
[25강] 포인터 (1)
0: 53: 06
C언어 포인터 기본 개념 및 활용
• C언어 포인터 개념: 메모리 주소를 직접 다루는 변수로, 데이터 접근 및 조작을 통해 프로그램 성능을 최적화.
• 주소 연산자 `&`: 변수의 메모리 시작 주소를 획득; 간접 참조 연산자 `*`: 포인터가 가리키는 실제 데이터 값 참조 및 변경.
• 포인터 사용 주의사항: 미초기화 및 타입 불일치 오류 방지 위해 NULL 포인터 활용 및 포인터와 변수 타입 일치 필수.
[26강] 포인터 (2)
1: 00: 22
C언어 포인터 연산 및 배열 활용

• C언어 포인터 연산: 자료형 크기에 따른 주소 증감 원리 및 `*`, `++` 연산자 조합에 따른 값/주소 변경 방식 이해
• 포인터 형변환 및 배열 관계: 명시적 형변환으로 타입 안정성 확보, 배열 이름과 포인터의 동등성 및 인덱스 접근 방법 학습
• 포인터의 효율성: 인덱스 표기법 대비 주소 계산 생략을 통한 대용량 데이터 처리 성능 이점 분석
[27강] 포인터 (3)
0: 39: 30
C언어 포인터와 함수: 호출 방식 및 활용 장점

• C언어 함수 인수 전달 방식: 값에 의한 호출(복사본 전달)과 포인터 활용 참조에 의한 호출(주소 전달)의 원리 및 기능.
• 포인터 핵심 기능: 배열 매개변수 주소 전달, scanf 함수 원리, 동적 메모리 할당, 연결 리스트 등 고급 자료 구조 구현.
• 포인터 연산: 주소 연산자 `&`와 간접 참조 연산자 `*`를 이용한 메모리 주소 접근 및 데이터 조작.
12장. 문자열
[28강] 문자열 (1)
0: 43: 49
C 언어 문자열 기초 및 입출력

• C 언어 문자열: 연속된 문자를 **문자형 배열**로 저장하며, **NULL 문자(\0)**로 끝을 명시하는 기본 데이터 구조.
• 문자열 초기화 및 출력: **문자열 상수**를 통해 배열을 초기화하고, **%s 형식 지정자**를 사용하여 효율적으로 출력하는 절차.
• 문자열 변경 및 입출력 함수: **strcpy()**로 문자열 내용을 변경하고, **getchar()/putchar**와 **_getch()/_putch()**는 버퍼 및 에코 유무에 따라 다른 기능 제공.
[29강] 문자열 (2)
0: 53: 15
C언어 문자열 라이브러리 (입출력, 문자/문자열 처리)

• C언어 문자열 입출력: `gets()`, `puts()` 함수를 활용한 문자열 입력 및 출력 원리 이해.
• C언어 문자/문자열 처리: `ctype.h` 기반 문자 검사/변환 및 `string.h` 기반 `strlen`, `strcpy`, `strcat`, `strcmp` 등 핵심 문자열 조작 기능 학습.
• 문자열 핵심 개념: NULL 문자, 문자 배열 크기, 포인터 사용법, 메모리 관리 및 오류 방지 전략 분석.
[30강] 문자열 (3)
0: 38: 28
문자열(3): 수치 변환 및 배열 활용

• 문자열 수치 변환: `sscanf`, `sprintf`, `atoi`, `atof` 함수를 이용한 문자열-수치 상호 변환 원리 및 메모리 표현 차이 이해
• 문자열 배열 활용: 2차원/3차원 문자 배열의 선언, 인덱싱을 통한 여러 문자열의 효율적 관리 방법 학습
• 문자열 조작 및 처리: `strlen`, `toupper` 등 관련 함수와 포인터를 활용한 문자열 조작 및 비교 방법 습득
13장. 구조체
[31강] 구조체. 구조체의 선언. 초기화. 사용. 활용
1: 04: 36
C언어 구조체 개념 및 활용

* **C언어 구조체**: 서로 다른 데이터 타입을 묶어 새로운 파생 자료형을 정의, 다양한 정보를 효율적으로 통합 관리하는 데이터 구조.
* **구조체 선언 및 활용**: `struct` 키워드로 정의 후 구조체 변수 생성 시 메모리 할당; 멤버 연산자(`.`)로 개별 멤버에 접근하며, 문자열은 `strcpy` 함수로 처리.
* **구조체 고급 기능**: 중첩 구조체 및 변수 간 대입은 가능하나 직접 비교는 불가하며, 배열과 달리 이종 데이터 집합을 구성.
[32강] 구조체의 배열. 구조체와 포인터. 구조체와 함수
0: 48: 25
C언어 구조체 배열, 포인터, 함수 활용

• C언어 구조체 배열: 여러 구조체를 집합적으로 관리하며 선언, 초기화, 멤버 참조(`배열명[인덱스].멤버명`), 문자열 처리(`strcpy`) 등 기본 원리 적용.
• 구조체 포인터: 구조체 메모리 주소를 직접 참조하여 `->` 연산자로 멤버에 접근하고, 포인터 멤버를 통해 링크드 리스트와 같은 복합 자료구조를 구축.
• 구조체 함수 활용: 구조체 데이터를 값 또는 포인터로 인자 전달 및 반환하며, `const` 키워드로 원본 데이터의 불변성을 유지하는 데이터 처리 로직 구현.
[33강] 공용체. 열거형. typedef
1: 04: 57
C언어 공용체, 열거형, typedef

• 공용체 (Union): 메모리 효율을 위해 여러 변수가 동일 메모리 공간을 공유하는 자료형.
• 열거형 (Enumeration): 코드 가독성 및 오류 감소를 위해 상수 집합을 정의하고 관리하는 자료형.
• typedef: 기존 자료형을 확장하거나 새로운 자료형을 정의하여 이식성과 유연성을 높이는 기능.
14장. 포인터 활용
[34강] 이중 포인터. 포인터 배열. 배열 포인터
1: 00: 01
C언어 포인터 심화 활용
• 이중 포인터: 포인터를 가리키는 포인터로 다단계 주소 참조 및 변수 값 변경, 복잡한 자료 구조 구현에 활용.
• 포인터 배열: 각 요소가 포인터 역할을 하여 여러 주소 관리, 래그드 배열로 가변 길이 문자열 메모리 효율 증대.
• 배열 포인터: 배열 전체를 가리키는 포인터로, 포인터 배열과 구별되는 선언 문법과 기능 이해.
[35강] 함수 포인터. 다차원 배열과 포인터
0: 44: 04
함수 포인터와 다차원 배열 및 포인터

• 함수 포인터: 함수의 메모리 주소를 지칭하여 간접 호출 및 동적 함수 선택 메커니즘 제공
• 함수 포인터의 배열: 여러 함수 주소를 저장하여 다양한 함수 중 하나를 선택적으로 호출하는 응용 방식
• 다차원 배열: 행우선 방식으로 메모리에 저장되며, 포인터 연산을 통해 행 단위로 이동하며 효율적 요소 접근 및 운행
[36강] const 포인터와 volatile 포인터. void 포인터
0: 35: 04
C언어 const, volatile, void 포인터 개념과 활용

• 다차원 배열 포인터: 포인터 연산을 통한 배열 원소 접근 및 특정 행/전체 평균 계산.
• const, volatile 포인터: const는 대상 내용/포인터 주소 변경 제어, volatile은 최적화 방지 및 최신 값 읽기 강제.
• void 포인터: 자료형에 무관한 주소 저장, 사용 시 명시적 형변환 필수, 증감 연산 불가.
15장. 전처리 및 비트 필드
[37강] 전처리 및 비트 필드 (1)
0: 39: 32
C언어 전처리 및 비트 필드

• C언어 전처리기: 컴파일 전 소스 파일 처리, `#define` 지시어로 매크로 정의 및 활용.
• 단순/함수 매크로: 기호 상수 정의, 복잡한 수식 간결화, 빠른 실행 속도 제공; 논리 오류 방지 위해 괄호 사용 필수.
• 내장/비트 매크로: 컴파일러 정보 제공 및 특정 비트 조작을 통해 디버깅, 하드웨어 제어에 활용.
[38강] 전처리 및 비트 필드 (2)
1: 04: 54
전처리기 지시어 및 비트 필드 (2)

• 전처리기 지시어: `#ifdef`, `#if` 등 조건부 컴파일을 통해 매크로 및 상수 수식으로 코드 블록을 제어.
• 다중 소스 파일: 코드 모듈화 및 재사용성 증진을 위해 헤더 파일과 `extern` 키워드로 코드 구조를 관리.
• 비트 필드 구조체: 멤버를 비트 단위로 정의하여 메모리 사용을 최적화하고 하드웨어 제어에 응용.
16장. 스트림과 파일 입출력
[39강] 스트림. printf() 출력. scanf()를 이용한 입력
0: 55: 41
C언어 스트림, `printf()` 출력, `scanf()` 입력 활용
• C언어 스트림: 입출력 바이트 흐름 기반 장치 독립성 및 버퍼 활용 원리.
• `printf()` 함수: 형식 지정자, 플래그, 필드폭을 이용한 출력 서식 정밀 제어.
• `scanf()` 함수: 입력 문자열 데이터 형식 변환, 필드폭·문자 집합으로 선택적 입력 처리.
[40강] 파일의 기초. 텍스트 파일 읽기와 쓰기
0: 45: 43
C언어 파일 입출력 및 유형

• C언어 파일 입출력: 데이터 영구 보존을 위한 파일 개념, 텍스트/이진 파일 유형별 특성 및 파일 포인터 기반 접근 원리.
• 파일 처리 절차: `fopen`, `fclose`, `remove` 함수를 통한 파일 열기, 닫기, 삭제 및 다양한 오픈 모드(`r, w, a, +, b, t`) 구성.
• 파일 입출력 함수: `fgetc/fputc` (문자), `fgets/fputs` (문자열), `fscanf/fprintf` (서식화) 활용한 파일 데이터 처리.
[41강] 이진 파일 읽기와 쓰기. 임의 접근
1: 02: 50
C언어 이진 파일 및 임의 접근
• 이진 파일: 데이터 변환 없이 0과 1 형태로 직접 저장, 효율적 입출력 및 공간 활용을 제공하는 파일 처리 방식.
• 버퍼링: 파일 입출력 시 버퍼를 임시 저장 공간으로 활용하여 디스크와의 효율적인 데이터 교환을 수행하는 메커니즘.
• 임의 접근: 파일 포인터 조작을 통해 특정 위치에 즉시 접근, 대용량 파일의 빠른 탐색 및 수정이 가능한 기법.
17장. 동적 메모리와 연결 리스트
[42강] 동적 메모리
0: 45: 25
동적 메모리 할당 및 해제

• 동적 메모리 할당 개념: 프로그램 실행 중 필요한 메모리를 유연하게 할당 및 해제하는 기법, 정적 할당과 구분.
• malloc, free 함수: 바이트 크기 지정 할당(void* 반환) 및 사용 후 메모리 명시적 해제 절차.
• calloc, realloc 기능 및 메모리 누수: 0 초기화, 크기 변경, 미해제 시 발생하는 시스템 성능 저하 현상.
교수 사진

한준탁 교수님

C언어

  • 170,000
  • 강의 수 42강
  • 수강기간 80일
유니와이즈 고객행복센터 1899-7454
학점은행제 고객행복센터 02-2149-0803~4
상담시간: 10:00~18:00
점심시간: 13:00~14:00
토요일,일요일,공휴일 휴무
유니와이즈 고객행복센터
1899-7454
학점은행제 고객행복센터
1833-6227
상담시간: 10:00~18:00
점심시간: 13:00~14:00
토,일,공휴일 휴무