신간보도자료	(주)도서출판 길벗 서울시 마포구 월드컵로 10길 56(서교동) 대표전화 (02)332-0931/팩스 (02)323-0586 홈페이지 www.gilbut.co.kr 담당자 : 신유진(backdoosan@gilbut.co.kr)

신간안내	C 언어의 정석

프로그래밍 입문을 위한

C 언어의 정석

▶ 발행 : (주)도서출판 길벗

▶ 발행일 : 2024년 6월 28일

▶ 지은이 : 조용주, 임좌상

▶ 쪽수 : 584쪽

▶ 판형 : 183 * 235(mm)

▶ 높이(두께) : 24(mm)

▶ 정가 : 34,000원

▶ ISBN : 979-11-407-1397-4 93000

*분야

<교보문고> 국내도서 > 컴퓨터/IT > 프로그래밍 언어 > C

국내도서 > 대학교재 > 컴퓨터

<예스24>  국내도서 > IT 모바일 > 프로그래밍 언어 > C

국내도서 > 대학교재 > 공학계열 > 컴퓨터공학 > 프로그래밍 언어

<알라딘>  국내도서 > 대학교재 > 공학계열 > 컴퓨터공학

국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C

<인터파크> 도서 > 컴퓨터/인터넷 > IT전문서 > 프로그래밍 언어 > C

도서 > 전공도서/대학교재 > 공학계열 > 컴퓨터공학

<영풍문고> 국내도서 > 컴퓨터 > 컴퓨터언어

국내도서 > 공학 > 공학일반

[간단한 책 소개]

C의 A부터 Z까지!

프로그래밍을 하기 위해서는 다양한 언어가 사용됩니다. 그중에서도 이 책은 C 언어를 통해 프로그래밍 개발에 접근합니다. C 언어는 일반 사용자용 응용 프로그램부터 시작하여 운영체제 같은 시스템 소프트웨어, 하드웨어를 다루는 임베디드 시스템 개발까지 사용되며, 컴퓨터 과학 및 소프트웨어 엔지니어링 분야에서 널리 사용됩니다. C 언어의 기본 개념부터 고급 기능까지 포괄적으로 다루어 보며, 다양하게 구성되어 있는 코드를 통해 프로그래밍의 첫 단계를 차근차근 시작해 보세요!

[출판사 리뷰]

《C 언어의 정석》은 저자가 오랜 기간 컴퓨터 관련 전공 학생들을 가르치면서, “이렇게 C를 가르쳐야 효과적”이라고 믿는 경험이 녹아 들어있다. 이뿐만 아니라, “C 언어를 제대로 사용하려면 이 정도 내용은 알아야 한다”라고 믿는 내용을 풀어쓴 책이다.

다음은 이 책의 특징을 간략하게 정리한 것이다.

• C 언어에서 필요한 내용은 모두 포함한다. C 언어 책을 한 권만 가지고 있어야 한다면,

이 책이면 충분하다 싶을 정도로 C 언어에 대한 모든 내용을 포함하려고 노력했다.

• 주제에 대한 설명은 자세하면서도 쉽게 설명하려고 노력했다. 초보자를 대상으로 기본 개념을 설명하면서도, 동시에 전문 용어나 개념을 사용하여 고급 개념을 소개하고 있다.

• 많은 예제를 활용해서 설명한다. 개념을 설명한 후, 간단한 예제들을 이용해서 코드로 작성하는 것을 보인다.

• 온라인으로 제공하는 실습 문제 1은 난이도 있는 응용 문제를 해결하는 과정을 차근차근 단계별로 설명한다.

• 실습 문제 1과 비슷한 유형의 실습 문제 2를 제공해서 학생들이 스스로 실습해 볼 수 있도록 한다.

• 단순한 지식을 검증할 수 있는 OX 문제뿐만 아니라, 간단한 기초부터 응용까지 다양한 수준의 연습 문제를 제공한다.

• 출간서의 지면 제한으로 인해 약 250쪽 분량의 책 내용을 온라인(길벗 홈페이지)으로 제공한다. 각 장의 연습 문제는 온라인으로 제공하는 내용을 학습했다고 가정한다.

[저자 소개]

조용주(Cho, Yongjoo) | ycho@smu.ac.kr

미국 일리노이주립대학(어바나-샴페인) 컴퓨터과학과에서 학사, 일리노이주립대학(시카고) 전기, 전자 및 컴퓨터과학과에서 석사, 컴퓨터 과학과에서 박사학위를 취득하였다. 2004년부터 상명대학교 융합공과대학 SW융합학부 컴퓨터과학전공에서 재직 중이며 다양한 프로그래밍 교과목, 프로그래밍 언어론, 디자인 패턴 등을 가르치고 있다. 저서로는 『프로그래밍 입문을 위한 파이썬의 정석』 조용주, 임좌상(길벗 2023)이 있다.

임좌상(Lim, Joa-Sang) | jslim@smu.ac.kr

호주 뉴사우스웨일즈대학 정보시스템학과에서 박사학위를 취득하고, 1997년부터 상명대학교 융합공과대학 지능·데이터융합학부 휴먼지능정보공학전공에서 자바, 빅데이터, 소프트웨어 설계 과목 등을 가르치고 있다. 1991년부터 3년간 호주 뉴사우스웨일즈대학에서 Associate Lecturer로 정보시스템, COBOL을 가르쳤고, 1994년부터 3년간 삼성 SDS에서 컨설팅 및 금융개발팀에서 근무했다. 이후에 금융감독원, 대법원 호적정보, LG카드 신승인, 코오롱 종합상사, 신용보증기금, 서울보증재단, 대우 자동차 판매, 한국외환은행, 삼성화재, 삼성할부, 삼성생명, 효성물산 등 기업정보시스템을 Java, C++로 개발하는 프로젝트에 참여했다. 저서로는 『프로그래밍 입문을 위한 파이썬의 정석』 조용주, 임좌상(길벗 2023)이 있다.

[목차 소개]

C의 A부터 Z까지!

프로그래밍을 하기 위해서는 다양한 언어가 사용됩니다. 그중에서도 이 책은 C 언어를 통해 프로그래밍 개발에 접근합니다. C 언어는 일반 사용자용 응용 프로그램부터 시작하여 운영체제 같은 시스템 소프트웨어, 하드웨어를 다루는 임베디드 시스템 개발까지 사용되며, 컴퓨터 과학 및 소프트웨어 엔지니어링 분야에서 널리 사용됩니다. C 언어의 기본 개념부터 고급 기능까지 포괄적으로 다루어 보며, 다양하게 구성되어 있는 코드를 통해 프로그래밍의 첫 단계를 차근차근 시작해 보세요!

Step1 C 언어 프로그래밍에서 필요한 모든 이론과 개념 이해

Step2 간단한 예제와 함께 코드 작성 실습 구성

Step3 기초부터 응용까지 다양한 수준의 실습 문제와 연습 문제 학습

[목차]

〈종이책과 온라인PDF의 목차를 순서대로 표기한 버전〉

• 목차 상 PDF로 표시되어 있는 부분은 온라인으로 제공됩니다.

머리말

강의 계획서

1장 | 첫 번째 C 프로그램 작성 및 실행

1 .1 컴퓨터 하드웨어

1.2 운영체제

1.3 프로그래밍이란?

1.4 프로그래밍 과정

1.5 프로그래밍 언어

1.6 C 언어

C 언어의 탄생

ANSI C

C99와 이후 버전

C 언어의 영향을 받은 언어

이 책에서 다루는 C 언어

C 언어의 특징과 장단점

1.7 첫 번째 C 언어 프로그램 작성

명령문

코드 블록

띄어쓰기와 들여쓰기

주석

최소한의 C 코드

첫 번째 C 코드 작성

1.8 프로그래밍 개발 환경 구축

C 프로그래밍 과정

통합 개발 환경

개발 도구 설치

1.9 연습 문제

2장 | 자료형, 변수, 상수, printf() 함수

2.1 자료형

자료형의 필요성

자료형의 의미와 목적

컴퓨터에서 문자 처리

상수의 개념과 표현 방법

기본 자료형

2.2 변수

변수의 세 가지 용도

변수 이름 짓는 방법

2.3 변수 선언, 대입문, 초기화

변수 선언의 의미

변수 선언 방법

변수 초기화와 대입문

변수 선언과 초기화

주소 연산자로 알아내는 변수의 메모리 주소

2.4 표준 출력 함수 printf( )

문자열 출력

서식에 맞춘 값 출력

2.5 형 변환

자동 형 변환 또는 암시적 형 변환

명시적 형 변환

2.6 typedef – 자료형 재정의

2.7 심볼릭 상수

상수 변수

2.8 열거형 - enum 자료형

열거형 선언 방법

열거형의 장단점

2.9 연습 문제

3장 | 전처리기, 연산자, 표준 입출력 함수

3.1 전처리기

전처리기 코드 작성 방법

외부 파일 삽입 기능 - #include

매크로 확장 기능 - #define

3.2 연산자

피연산자, 우선순위, 결합 순서

부호 연산자

산술 연산자

비트 연산자

증감 연산자

복합 대입 연산자

순차 연산자

3.3 표준 입출력 함수

사용자로부터 입력받기

서식 지정자를 이용해서 입력받기

입력 버퍼

scanf( ) 함수로 두 개 이상 값을 입력받는 프로그램

"%c"와 " %c"의 차이 - 서식 문자열의 공백 문자

서식을 지정해서 값 읽기

3.4 다른 표준 입출력 함수

문자 단위 입출력 함수

문자 출력 함수

문자열 출력 함수

3.5 연습 문제

4장 | 조건문

4 .1 제어 흐름

4.2 조건 표현식

관계 연산자

논리 연산자

단축 평가

4.3 조건문

if 문

if-else 문

잘못 자리 잡은 else(dangling else) 문제

if-else if-else 문

4.4 중첩 조건문

4.5 조건 연산자

4.6 switch 문

4.7 연습 문제

5장 | 반복문

5 .1 반복/종료 조건

5.2 while 문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.3 do-while 문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.4   for 반복문

for 반복문에서 여러 개 변수 사용 - 콤마 연산자

for, while 반복문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.5 break와 continue

break 문

약수를 최대 네 개까지 출력하는 프로그램

continue 문

약수 중에서 홀수만 출력하는 프로그램

5.6 연습 문제

6장 | 함수

6.1 함수

여러 부품을 조합해서 만드는 C 프로그램

함수의 사용 목적

6.2 함수 정의, 호출, 실행

함수 코드 실행 후 반환하는 값

함수 호출

함수의 매개변수에 인자 전달

다시 살펴보는 main( ) 함수

입력으로 전달된 양의 정수가 소수인지 확인하는 함수

n1~n2 사이의 정수 중 소수를 출력하는 함수

6.3 변수의 유효 범위와 생존 기간

지역변수

전역변수

전역변수와 지역변수의 이름 충돌과 유효 범위

코드 블록과 for 문 유효 범위

정적 지역변수

typedef와 유효 범위

다시 살펴보는 const 변수

6.4 함수 선언

6.5 표준 C 라이브러리 헤더 파일

6.6 메모리 구조

6.7 재귀 호출

재귀적 알고리즘

재귀 함수의 동작 원리

반복문과 재귀 호출

6.8 매크로 함수

매크로 함수의 장단점

6.9 연습 문제

7장 | 배열

7.1 배열의 필요성과 개념

배열의 필요성

배열의 개념

7.2 1차원 배열

배열 선언

배열 사용

인덱스 범위

sizeof( ) 연산자와 배열

배열 초기화

배열과 대입 연산

7.3 함수와 배열

함수에 배열 요소 전달

함수에 배열 전달

함수에 배열 크기 함께 전달

함수에서 전달받은 배열 수정

함수에서 매개변수 배열 변경 방지

매개변수를 이용한 배열 선언

사용자로부터 문자를 입력받고 출력하는 프로그램

약수를 생성해서 출력하는 프로그램

7.4 다차원 배열

2차원 배열

2차원 배열의 선언과 메모리 구조

2차원 배열 사용

2차원 배열 초기화

함수에 2차원 배열 전달

함수에 다차원 배열의 부분 배열 전달

3차원 배열

7.5 C 언어의 다차원 배열

7.6 연습 문제

8장 | 포인터 1

8.1 포인터와 필요성

8.2 포인터 자료형 변수 사용

포인터 자료형 변수 선언 방법

NULL 포인터

포인터 자료형의 크기

포인터 변수 사용과 간접 참조 연산자(*)

포인터 변수의 자료형(TYPE) 지정

포인터와 주소 연산자

포인터 형 변환 3

정수를 메모리에 저장한 후 바이트 단위로 출력하는 프로그램

어려운 포인터 변수 선언

포인터 변수 선언 방법 정리

포인터 변수로 연산하는 프로그램

8.3 포인터 연산

8.4 포인터와 배열

배열 이름은 배열의 시작 주소

포인터 변수와 배열

포인터 연산으로 배열 요소 접근

포인터 변수와 증감 또는 복합 연산자로 배열 접근

배열 인덱스 연산자 [ ]

포인터 연산자의 우선순위

배열 = = 포인터?

8.5 함수와 포인터

함수에 포인터 인자 전달

포인터 매개변수를 사용해서 함수 외부 변숫값 변경

포인터 매개변수로 함수에 큰 데이터 효율적 전달

함수에 배열 전달

함수에서 포인터 반환

2차 방정식의 해를 구하는 함수를 구현하고 사용하는 프로그램

8.6 상수 포인터

8.7 함수 포인터

8.8 void 포인터 자료형

void 포인터와 함수 포인터를 함께 사용하는 프로그램

8.9 연습 문제

9장 | 문자열, 포인터 2

9.1 문자열 선언과 초기화

문자 배열 형태로 선언되는 문자열

포인터 변수로 선언되는 문자열

문자열 변경

문자열과 대입 연산

문자열과 메모리 구조

9.2 문자열과 포인터

문자열 출력

9.3 문자열 입출력

키보드로 문자열 입력받기

문자열에서 입력받기

서식에 맞춰 문자열에 출력

9.4  문자열 배열

2차원 문자 배열로 문자열 배열 구현

포인터로 문자열 배열 구현

9.5 포인터 배열

함수 포인터 배열

9.6 포인터의 포인터

9.7 문자열과 숫자의 변환

9.8 문자열 함수

문자열 복사

문자열 길이 확인

문자열 연결

문자열 비교

문자열 잘라내기

기타 문자열 함수

간단한 scanf( ) 함수 구현

9.9 메모리 관련 함수

일정한 값으로 메모리 공간 채우기

다른 메모리 공간과 메모리 공간의 비교

다른 메모리 공간에 메모리 공간 복사

메모리 영역에서 특정 값 찾기

9.10 문자 관련 함수

9.11 명령행 인자

9.12 연습 문제

10장 | 구조체, 공용체

10.1 구조체의 필요성과 정의

10.2 구조체 선언

구조체 선언과 정의

재귀적 선언

구조체 변수 초기화

구조체 선언/정의와 유효 범위

10.3 구조체 사용

멤버 접근 및 사용

구조체 대입

구조체 비교

10.4 구조체와 포인터

10.5 구조체 배열

구조체 배열 선언

구조체 배열 초기화

구조체 배열에 포인터로 접근

10.6 함수와 구조체

10.7 중첩된 구조체

중첩된 구조체 선언

중첩된 구조체 초기화

중첩된 구조체의 멤버에 접근

10.8 구조체 크기

10.9 연습 문제

10.10 시간 관련 함수 PDF

현재 시각을 알아보는 함수

시간을 자세하게 알아보는 함수

mktime( )으로 정수 시간 구성

문자열 형식으로 생성하는 시간 정보

기타 시간 관련 함수

10.11 공용체 PDF

공용체의 필요성

공용체 선언

공용체 사용

공용체 멤버 변수 표시 붙이기

공용체와 함수

공용체와 포인터

10.12 비트 필드 PDF

11장 | C 프로그램의 메모리 구조와 동적 메모리 할당

11.1  C 프로그램의 메모리 구조 복습 및 힙 영역

동적 할당의 필요성

11.2 동적 메모리 할당과 반환(해제)

동적 할당 함수 사용

정수 n개를 입력받고 합과 평균을 구하는 프로그램

합과 평균 구하는 프로그램을 함수로 나눈 프로그램

11.3  간단한 주소록 프로그램

PhoneNumber 구조체를 요소로 포함하는 배열

PhoneNumber*를 요소로 포함하는 배열

11.4 연습 문제

11.5 리스트로 구현하는 전화번호 목록 PDF

재귀적 선언

리스트 기본 연산

12장 | 파일 입출력  PDF

12.1 파일과 스트림

파일

스트림

12.2 파일 입출력

파일 열기

파일 포인터

텍스트와 바이너리 스트림의 입출력

파일 닫기

텍스트 파일 입출력

파일 복사 프로그램 작성

파일의 끝 또는 입출력 오류 확인

문자 단위 입출력

파일 복사 프로그램 작성

블록 단위 바이너리 입출력

블록 단위로 파일 복사

구조체 쓰고 읽기

12.3 임의 접근

파일 크기 확인

갱신 모드(r+)로 파일 데이터 삽입

텍스트 파일에서 fseek( )과 ftell( ) 사용

12.4 stdin, stdout, stderr과 리디렉션

12.5 기타 파일 관련 함수

12.6 연습 문제

13장 | 모듈화 프로그래밍과 전처리기 PDF

13.1  모듈화 프로그래밍

코드를 여러 개 파일로 나누어야 하는 이유

분할 컴파일과 링크

해시값을 구하는 프로그램

파일 분할

여러 파일 컴파일 및 빌드

빌드 경고 또는 오류

함수 원형과 헤더 파일

헤더 파일 include 방법

외부 변수 사용

한 번만 포함하는 헤더 파일

헤더 파일 작성 및 사용 방법 정리

static 변수와 함수

13.2 조건부 컴파일

전처리 조건문

#undef 140

#ifdef ... #endif와 #ifndef ... #endif

13.3 기타 전처리기 기능

미리 정의된 매크로 상수

#error 사용법

#line 사용법

# 연산자

## 연산자

#pragma 지시어

13.4 연습 문제

3장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

4장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

5장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

6장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

7장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

8장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

9장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

10장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

11장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

12장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

13장 | 실습 문제 PDF

실습 문제 1

실습 문제 2

부록 1 아스키 코드 PDF

부록 2 통합 개발 환경 설치 PDF

부록 3 비주얼 스튜디오 디버거 사용법 PDF

부록 4 가변 인자 사용 PDF

•실습 문제 1은 각 장에서 배운 내용을 응용하는 문제를 해결하는 방법으로 자세히 설명합니다.

•실습 문제 2는 스스로 해결하는 방법으로 진행됩니다.

〈종이책과 온라인 제공 PDF를 따로 분리해서 표기한 버전〉

1장 | 첫 번째 C 프로그램 작성 및 실행

1.1 컴퓨터 하드웨어

1.2 운영체제

1.3 프로그래밍이란?

1.4 프로그래밍 과정

1.5 프로그래밍 언어

1.6 C 언어

C 언어의 탄생

ANSI C

C99와 이후 버전

C 언어의 영향을 받은 언어

이 책에서 다루는 C 언어

C 언어의 특징과 장단점

1.7 첫 번째 C 언어 프로그램 작성

명령문

코드 블록

띄어쓰기와 들여쓰기

주석

최소한의 C 코드

첫 번째 C 코드 작성

1.8 프로그래밍 개발 환경 구축

C 프로그래밍 과정

통합 개발 환경

개발 도구 설치

1.9 연습 문제

2장 | 자료형, 변수, 상수, printf() 함수

2.1 자료형

자료형의 필요성

자료형의 의미와 목적

컴퓨터에서 문자 처리

상수의 개념과 표현 방법

기본 자료형

2.2 변수

변수의 세 가지 용도

변수 이름 짓는 방법

2.3 변수 선언, 대입문, 초기화

변수 선언의 의미

변수 선언 방법

변수 초기화와 대입문

변수 선언과 초기화

주소 연산자로 알아내는 변수의 메모리 주소

2.4 표준 출력 함수 printf( )

문자열 출력

서식에 맞춘 값 출력

2.5 형 변환

자동 형 변환 또는 암시적 형 변환

명시적 형 변환

2.6 typedef – 자료형 재정의

2.7 심볼릭 상수

상수 변수

2.8 열거형 - enum 자료형

열거형 선언 방법

열거형의 장단점

2.9 연습 문제

3장 | 전처리기, 연산자, 표준 입출력 함수

3.1 전처리기

전처리기 코드 작성 방법

외부 파일 삽입 기능 - #include

매크로 확장 기능 - #define

3.2 연산자

피연산자, 우선순위, 결합 순서

부호 연산자

산술 연산자

비트 연산자

증감 연산자

복합 대입 연산자

순차 연산자

3.3 표준 입출력 함수

사용자로부터 입력받기

서식 지정자를 이용해서 입력받기

입력 버퍼

scanf( ) 함수로 두 개 이상 값을 입력받는 프로그램

"%c"와 " %c"의 차이 - 서식 문자열의 공백 문자

서식을 지정해서 값 읽기

3.4 다른 표준 입출력 함수

문자 단위 입출력 함수

문자 출력 함수

문자열 출력 함수

3.5 연습 문제

4장 | 조건문

4 .1 제어 흐름

4.2 조건 표현식

관계 연산자

논리 연산자

단축 평가

4.3 조건문

if 문

if-else 문

잘못 자리 잡은 else(dangling else) 문제

if-else if-else 문

4.4 중첩 조건문

4.5 조건 연산자

4.6 switch 문

4.7 연습 문제

5장 | 반복문

5 .1 반복/종료 조건

5.2 while 문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.3 do-while 문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.4   for 반복문

for 반복문에서 여러 개 변수 사용 - 콤마 연산자

for, while 반복문

정수의 약수를 출력하는 프로그램

사용자로부터 알파벳을 입력받을 때까지 지속적으로 입력받는 프로그램

5.5 break와 continue

break 문

약수를 최대 네 개까지 출력하는 프로그램

continue 문

약수 중에서 홀수만 출력하는 프로그램

5.6 연습 문제

6장 | 함수

6.1 함수

여러 부품을 조합해서 만드는 C 프로그램

함수의 사용 목적

6.2 함수 정의, 호출, 실행

함수 코드 실행 후 반환하는 값

함수 호출

함수의 매개변수에 인자 전달

다시 살펴보는 main( ) 함수

입력으로 전달된 양의 정수가 소수인지 확인하는 함수

n1~n2 사이의 정수 중 소수를 출력하는 함수

6.3 변수의 유효 범위와 생존 기간

지역변수

전역변수

전역변수와 지역변수의 이름 충돌과 유효 범위

코드 블록과 for 문 유효 범위

정적 지역변수

typedef와 유효 범위

다시 살펴보는 const 변수

6.4 함수 선언

6.5 표준 C 라이브러리 헤더 파일

6.6 메모리 구조

6.7 재귀 호출

재귀적 알고리즘

재귀 함수의 동작 원리

반복문과 재귀 호출

6.8 매크로 함수

매크로 함수의 장단점

6.9 연습 문제

7장 | 배열

7.1 배열의 필요성과 개념

배열의 필요성

배열의 개념

7. 2 1차원 배열

배열 선언

배열 사용

인덱스 범위

sizeof( ) 연산자와 배열

배열 초기화

배열과 대입 연산

7.3 함수와 배열

함수에 배열 요소 전달

함수에 배열 전달

함수에 배열 크기 함께 전달

함수에서 전달받은 배열 수정

함수에서 매개변수 배열 변경 방지

매개변수를 이용한 배열 선언

사용자로부터 문자를 입력받고 출력하는 프로그램

약수를 생성해서 출력하는 프로그램

7.4 다차원 배열

2차원 배열

2차원 배열의 선언과 메모리 구조

2차원 배열 사용

2차원 배열 초기화

함수에 2차원 배열 전달

함수에 다차원 배열의 부분 배열 전달

3차원 배열

7.5 C 언어의 다차원 배열

7.6 연습 문제

8장 | 포인터 1

8.1 포인터와 필요성

8.2 포인터 자료형 변수 사용

포인터 자료형 변수 선언 방법

NULL 포인터

포인터 자료형의 크기

포인터 변수 사용과 간접 참조 연산자(*)

포인터 변수의 자료형(TYPE) 지정

포인터와 주소 연산자

포인터 형 변환

정수를 메모리에 저장한 후 바이트 단위로 출력하는 프로그램

어려운 포인터 변수 선언

포인터 변수 선언 방법 정리

포인터 변수로 연산하는 프로그램

8.3 포인터 연산

8.4 포인터와 배열

배열 이름은 배열의 시작 주소

포인터 변수와 배열

포인터 연산으로 배열 요소 접근

포인터 변수와 증감 또는 복합 연산자로 배열 접근

배열 인덱스 연산자 [ ]

포인터 연산자의 우선순위

배열 = = 포인터?

8.5 함수와 포인터

함수에 포인터 인자 전달

포인터 매개변수를 사용해서 함수 외부 변숫값 변경

포인터 매개변수로 함수에 큰 데이터 효율적 전달

함수에 배열 전달

함수에서 포인터 반환

2차 방정식의 해를 구하는 함수를 구현하고 사용하는 프로그램

8.6 상수 포인터

8.7 함수 포인터

8.8   void 포인터 자료형

void 포인터와 함수 포인터를 함께 사용하는 프로그램

8.9 연습 문제

9장 | 문자열, 포인터 2

9.1 문자열 선언과 초기화

문자 배열 형태로 선언되는 문자열

포인터 변수로 선언되는 문자열

문자열 변경

문자열과 대입 연산

문자열과 메모리 구조

9. 2 문자열과 포인터

문자열 출력

9.3 문자열 입출력

키보드로 문자열 입력받기

문자열에서 입력받기

서식에 맞춰 문자열에 출력

9.4 문자열 배열

2차원 문자 배열로 문자열 배열 구현

포인터로 문자열 배열 구현

9.5 포인터 배열

함수 포인터 배열

9.6 포인터의 포인터

9.7 문자열과 숫자의 변환

9. 8 문자열 함수

문자열 복사

문자열 길이 확인

문자열 연결

문자열 비교

문자열 잘라내기

기타 문자열 함수

간단한 scanf( ) 함수 구현

9.9 메모리 관련 함수

일정한 값으로 메모리 공간 채우기

다른 메모리 공간과 메모리 공간의 비교

다른 메모리 공간에 메모리 공간 복사

메모리 영역에서 특정 값 찾기

9.10 문자 관련 함수

9.11 명령행 인자

9.12 연습 문제

10장 | 구조체, 공용체

10.1 구조체의 필요성과 정의

10.2 구조체 선언

구조체 선언과 정의

재귀적 선언

구조체 변수 초기화

구조체 선언/정의와 유효 범위

10.3 구조체 사용

멤버 접근 및 사용

구조체 대입

구조체 비교

10.4 구조체와 포인터

10.5 구조체 배열

구조체 배열 선언

구조체 배열 초기화

구조체 배열에 포인터로 접근

10.6 함수와 구조체

10.7 중첩된 구조체

중첩된 구조체 선언

중첩된 구조체 초기화

중첩된 구조체의 멤버에 접근

10.8 구조체 크기

10.9 연습 문제

11장 | C 프로그램의 메모리 구조와 동적 메모리 할당

11.1 C 프로그램의 메모리 구조 복습 및 힙 영역

동적 할당의 필요성

11.2 동적 메모리 할당과 반환(해제)

동적 할당 함수 사용

정수 n개를 입력받고 합과 평균을 구하는 프로그램

합과 평균 구하는 프로그램을 함수로 나눈 프로그램

11.3 간단한 주소록 프로그램

PhoneNumber 구조체를 요소로 포함하는 배열

PhoneNumber*를 요소로 포함하는 배열

11.4 연습 문제

찾아보기

<온라인 PDF 제공 내용>

- 지금부터의 내용은 길벗 홈페이지(www.gilbut.co.kr) 자료실에서 다운받을 수 있습니다.

10장 | 구조체, 공용체

10.10 시간 관련 함수

현재 시각을 알아보는 함수

시간을 자세하게 알아보는 함수

mktime( )으로 정수 시간 구성

문자열 형식으로 생성하는 시간 정보

기타 시간 관련 함수

10.11 공용체

공용체의 필요성

공용체 선언

공용체 사용

공용체 멤버 변수 표시 붙이기

공용체와 함수

공용체와 포인터

10.12 비트 필드

11장 | C 프로그램의 메모리 구조와 동적 메모리 할당

11.5 리스트로 구현하는 전화번호 목록

재귀적 선언

리스트 기본 연산

12장 | 파일 입출력

12.1 파일과 스트림

파일

스트림

12.2 파일 입출력

파일 열기

파일 포인터

텍스트와 바이너리 스트림의 입출력

파일 닫기

텍스트 파일 입출력

파일 복사 프로그램 작성

파일의 끝 또는 입출력 오류 확인

문자 단위 입출력

파일 복사 프로그램 작성

블록 단위 바이너리 입출력

블록 단위로 파일 복사

구조체 쓰고 읽기

12.3 임의 접근

파일 크기 확인

갱신 모드(r+)로 파일 데이터 삽입

텍스트 파일에서 fseek( )과 ftell( ) 사용

12.4 stdin, stdout, stderr과 리디렉션

12.5 기타 파일 관련 함수

12.6 연습 문제

13장 | 모듈화 프로그래밍과 전처리기

13.1 모듈화 프로그래밍

코드를 여러 개 파일로 나누어야 하는 이유

분할 컴파일과 링크

해시값을 구하는 프로그램

파일 분할

여러 파일 컴파일 및 빌드

빌드 경고 또는 오류

함수 원형과 헤더 파일

헤더 파일 include 방법

외부 변수 사용

한 번만 포함하는 헤더 파일

헤더 파일 작성 및 사용 방법 정리

static 변수와 함수

13.2 조건부 컴파일

전처리 조건문

#undef

#ifdef ... #endif와 #ifndef ... #endif

13.3 기타 전처리기 기능

미리 정의된 매크로 상수

#error 사용법

#line 사용법

# 연산자

## 연산자

#pragma 지시어

13.4 연습 문제

<각 장의 실습 문제>

- 실습 문제 1은 각 장에서 배운 내용을 응용하는 문제를 해결하는 방법으로 자세히 설명하고, 실습 문제 2는 스스로 해결하는 방법으로 진행됩니다.

3장 | 실습 문제

실습 문제 1

실습 문제 2

4장 | 실습 문제

실습 문제 1

실습 문제 2

5장 | 실습 문제

실습 문제 1

실습 문제 2

6장 | 실습 문제

실습 문제 1

실습 문제 2

7장 | 실습 문제

실습 문제 1

실습 문제 2

8장 | 실습 문제

실습 문제 1

실습 문제 2

9장 | 실습 문제

실습 문제 1

실습 문제 2

10장 | 실습 문제

실습 문제 1

실습 문제 2

11장 | 실습 문제

실습 문제 1

실습 문제 2

12장 | 실습 문제

실습 문제 1

실습 문제 2

13장 | 실습 문제

실습 문제 1

실습 문제 2

<부록>

부록 1 아스키 코드

부록 2 통합 개발 환경 설치

부록 3 비주얼 스튜디오 디버거 사용법

부록 4 가변 인자 사용