혼자 공부하는 C 언어

1:1 과외하듯 배우는 프로그래밍 자습서
$29.48
SKU
9791169210911
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Mon 04/21 - Fri 04/25 (주문일로부 10-14 영업일)

Express Shipping estimated by Wed 04/16 - Fri 04/18 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2023/05/18
Pages/Weight/Size 188*257*35mm
ISBN 9791169210911
Categories IT 모바일 > 프로그래밍 언어
Description
혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서

『혼자 공부하는 C 언어』가 더욱 흥미 있고 알찬 내용으로 돌아왔습니다. 혼자 공부하더라도 막히는 부분이 없도록 부가 설명용 동영상 ‘QR 코드’를 추가했습니다. 또한 최신 프로그램에서도 무리 없이 실습을 진행할 수 있도록 비주얼 스튜디오 2022 버전을 반영했습니다.

물론, 프로그래밍이 정말 처음인 사람에게 ‘꼭 필요한 내용’과 뭘 모르는지조차 모르는 마음에 십분 공감해 과외 선생님이 알려주듯 핵심 내용만 콕콕 짚어 주는 ‘친절한 설명’, 누구나 쉽게 따라 할 수 있도록 구성된 ‘단계별 학습’ 그리고 입문자에게 맞는 난이도, 분량, 학습 요소 등을 ‘베타리더의 의견’에 따라 적극 반영한 건 여전합니다!

단순한 문법 암기와 코딩 따라하기에 지쳤다면 새롭게 돌아온 친절한 ‘혼공 씨’와 함께 C 언어라는, 프로그래밍 언어의 근본을 경험해 보세요. 책의 첫 페이지를 펼치고 마지막 페이지를 덮을 때까지, 혼자서도 충분히 C 언어를 배울 수 있다는 자신감과 확신이 계속 들 것입니다!
Contents
Chapter 01 프로그램 만들기

01-1 프로그램과 C 언어
__C 언어의 탄생
__C 언어의 장점

01-2 컴파일과 컴파일러 사용법
__비주얼 스튜디오 설치하기
__프로젝트 생성과 소스 파일 작성
__소스 파일 컴파일하기
__실행 파일 실행하기
[좀 더 알아보기] 프로젝트 템플릿 만들기
[6가지 키워드로 끝내는 핵심 포인트]
[그림으로 정리하는 컴파일 과정 3단계]
[확인 문제]

Chapter 02 상수와 데이터 출력

02-1 C 프로그램의 구조와 데이터 출력 방법
__프로그램과 main 함수 구조
__문자열 출력 : 출력 함수(printf)의 사용법
__제어 문자 출력
__정수와 실수 출력
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

02-2 상수와 데이터 표현 방법
__정수 상수 표현법
__실수 상수 표현법
__문자와 문자열 상수 표현법
__상수가 컴파일된 후의 비트 형태
__정수 상수가 컴파일된 후의 비트 형태
__실수 상수가 컴파일된 후의 비트 형태
[좀 더 알아보기] 실수 상수의 오차
[7가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

Chapter 03 변수와 데이터 입력

03-1 변수
__변수 선언 방법
__정수 자료형
__unsigned 정수 자료형
__실수 자료형
__문자열 저장
__const를 사용한 변수
__예약어와 식별자
[6가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

03-2 데이터 입력
__scanf 함수의 사용법
__문자와 문자열의 입력
[좀 더 알아보기] 비정상 종료되는 경우
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

Chapter 04 연산자

04-1 산술 연산자, 관계 연산자, 논리 연산자
__산술 연산자와 대입 연산자
__증감 연산자
__관계 연산자
__논리 연산자
__연산의 결괏값을 처리하는 방법
[좀 더 알아보기] 연산식은 컴퓨터 내부에서 어떻게 처리될까요?
[좀 더 알아보기] CPU의 메모리와 우리가 알고 있는 메모리(RAM)는 어떻게 다른가요?
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

04-2 그 외 유용한 연산자
__형 변환 연산자
__sizeof 연산자
__복합대입 연산자
__콤마 연산자
__조건 연산자
__비트 연산자
__연산자 우선순위와 연산 방향
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 05 선택문

05-1 if문
__if문의 기본 형식 151
__if ~ else문 153
__if ~ else if ~ else문 156
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

05-2 if문 활용과 switch ~ case문
__if문 중첩
__else 결합 문제
__switch ~ case문
[좀 더 알아보기] switch ~ case문을 if문으로 바꿔 보기
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 06 반복문

06-1 while문, for문, do ~ while문
__while문
__for문
__do ~ while문
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

06-2 반복문 활용
__중첩 반복문
__break와 continue 분기문
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 07 함수

07-1 함수의 작성과 사용
__함수 정의
__함수 호출과 반환
__함수 선언
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

07-2 여러 가지 함수 유형
__매개변수가 없는 함수
__반환값이 없는 함수
__매개변수와 반환값이 모두 없는 함수
__재귀호출 함수
__재귀호출과 반복문의 차이점
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 08 배열

08-1 배열의 선언과 사용
__배열의 선언
__배열 초기화
__배열과 반복문
__sizeof 연산자를 활용한 배열 처리
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

08-2 문자를 저장하는 배열
__char형 배열의 선언과 초기화
__문자열 대입
__문자열 전용 입출력 함수 : gets, puts
[좀 더 알아보기] 문자열의 끝에 널 문자가 없다면?
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 09 포인터

09-1 포인터의 기본 개념
__메모리의 주소
__주소 연산자
__포인터와 간접 참조 연산자
__여러 가지 포인터 사용해 보기
__const를 사용한 포인터
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

09-2 포인터 완전 정복을 위한 포인터 이해하기
__주소와 포인터의 차이
__주소와 포인터의 크기
__포인터의 대입 규칙
__포인터를 사용하는 이유
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 10 배열과 포인터

10-1 배열과 포인터의 관계
__배열명으로 배열 요소 사용하기
__배열명 역할을 하는 포인터
__배열명과 포인터의 차이
__포인터의 뺄셈과 관계 연산
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

10-2 배열을 처리하는 함수
__배열의 값을 출력하는 함수
__배열 요소의 개수가 다른 배열도 출력하는 함수
__배열에 값을 입력하는 함수
[좀 더 알아보기] 함수의 매개변수 자리에 배열을 선언하는 경우
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 11 문자

11-1 아스키 코드 값과 문자 입출력 함수
__아스키 코드
__scanf 함수를 사용한 문자 입력
__getchar, putchar 함수
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

11-2 버퍼를 사용하는 입력 함수
__scanf 함수가 문자를 입력하는 과정
__scanf 함수 반환값 활용
__getchar 함수를 사용한 문자열 입력
__입력 버퍼 지우기
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 12 문자열

12-1 문자열과 포인터
__문자열 상수 구현 방법
__char 포인터로 문자열 사용
__scanf 함수를 사용한 문자열 입력
__gets 함수를 사용한 문자열 입력
__fgets 함수를 사용한 문자열 입력
__표준 입력 함수의 버퍼 공유 문제
__문자열을 출력하는 puts, fputs 함수
[좀 더 알아보기] 직접 구현해 보는 gets 함수
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

12-2 문자열 연산 함수
__문자열을 대입하는 strcpy 함수
__원하는 개수의 문자만을 복사하는 strncpy 함수
__문자열을 붙이는 strcat, strncat 함수
__문자열 길이를 계산하는 strlen 함수
__문자열을 비교하는 strcmp, strncmp 함수
__연산 함수 직접 구현
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 13 변수의 영역과 데이터 공유

13-1 변수 사용 영역
__지역 변수
__블록 안에서 사용하는 지역 변수
__전역 변수
__정적 지역 변수
__레지스터 변수
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

13-2 함수의 데이터 공유 방법
__값을 복사해서 전달하는 방법
__주소를 전달하는 방법
__주소를 반환하는 함수
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 14 다차원 배열과 포인터 배열

14-1 다차원 배열
__2차원 배열 선언과 요소 사용
__2차원 배열 초기화
__2차원 char 배열
__2차원 char 배열 초기화
__3차원 배열
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

14-2 포인터 배열
__포인터 배열 선언과 사용
__2차원 배열처럼 활용하는 포인터 배열
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 15 응용 포인터

15-1 이중 포인터와 배열 포인터
__이중 포인터 개념
__이중 포인터 활용 1 : 포인터 값을 바꾸는 함수의 매개변수
__이중 포인터 활용 2 : 포인터 배열을 매개변수로 받는 함수
__배열 요소의 주소와 배열의 주소
__2차원 배열과 배열 포인터
__2차원 배열의 요소를 참조하는 원리
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

15-2 함수 포인터와 void 포인터
__함수 포인터의 개념
__함수 포인터의 활용
__void 포인터
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 16 메모리 동적 할당

16-1 동적 할당 함수
__malloc, free 함수
__동적 할당 영역을 배열처럼 쓰기
__기타 동적 할당 함수
[좀 더 알아보기] 프로그램이 사용하는 메모리 영역과 그 특징
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

16-2 동적 할당 저장 공간의 활용
__동적 할당을 사용한 문자열 처리
__동적 할당 영역에 저장한 문자열을 함수로 처리하는 예
__main 함수의 명령행 인수 사용
[3가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 17 사용자 정의 자료형

17-1 구조체
__구조체 선언과 멤버 사용
__다양한 구조체 멤버
__구조체 변수의 초기화와 대입 연산
__구조체 변수를 함수 매개변수에 사용하기
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

17-2 구조체 활용, 공용체, 열거형
__구조체 포인터와 → 연산자
__구조체 배열
__구조체 배열을 처리하는 함수
__자기 참조 구조체
__공용체
__열거형
__typedef를 사용한 형 재정의
[5가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 18 파일 입출력

18-1 파일 개방과 입출력
__파일 개방과 폐쇄
__스트림 파일과 파일 포인터
__문자 입력 함수: fgetc
__문자 출력 함수: fputc
__기본적으로 개방되는 표준 입출력 스트림 파일
__텍스트 파일과 바이너리 파일
__+ 개방 모드, fseek, rewind, feof 함수
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

18-2 다양한 파일 입출력 함수
__한 줄씩 입출력하는 함수: fgets, fputs
__다양한 형태로 입출력하는 함수: fscanf, fprintf
__스트림 파일의 버퍼 공유 문제와 fflush 함수
__fread, fwrite 함수
[6가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

Chapter 19 전처리와 분할 컴파일

19-1 전처리 지시자
__파일을 포함하는 #include
__매크로명을 만드는 #define
__#define을 사용한 매크로 함수
__이미 정의된 매크로
__매크로 연산자 #과 ##
__조건부 컴파일 지시자
[좀 더 알아보기] #pragma 지시자
[4가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]

19-2 분할 컴파일
__분할 컴파일 방법
__분할 컴파일에서 extern과 static의 용도
__헤더 파일의 필요성과 중복 문제 해결 방법
[6가지 키워드로 끝내는 핵심 포인트]
[표로 정리하는 핵심 포인트]
[확인 문제]
[도전 실전 예제]

부록 A 아스키 코드표
부록 B 선택 정렬 알고리즘
부록 C 여기서 잠깐 모음

__확인 문제 정답
__찾아보기
Author
서현우
컴퓨터공학을 전공하고 16년간 학교와 기업체에서 C 언어 전문 강사로 활동했으며, 현재는 유튜브 비디오 크리에이터로 활동 중이다. 평소에는 어린 두 아이와 눈높이를 맞추는 자상함이 있지만, 강의할 때 뿜어 나오는 카리스마는 수강생을 C 언어의 세계로 빠져들게 한다. 오프라인 강의에서 보여줬던 쉽고 깔끔한 강의, 전문적이고 기본기를 다져주는 강의, 집중력을 이끌어내는 명쾌한 강의를 이제는 유튜브를 통해 쉽게 수강할 수 있다.
컴퓨터공학을 전공하고 16년간 학교와 기업체에서 C 언어 전문 강사로 활동했으며, 현재는 유튜브 비디오 크리에이터로 활동 중이다. 평소에는 어린 두 아이와 눈높이를 맞추는 자상함이 있지만, 강의할 때 뿜어 나오는 카리스마는 수강생을 C 언어의 세계로 빠져들게 한다. 오프라인 강의에서 보여줬던 쉽고 깔끔한 강의, 전문적이고 기본기를 다져주는 강의, 집중력을 이끌어내는 명쾌한 강의를 이제는 유튜브를 통해 쉽게 수강할 수 있다.