본문 바로가기

도서 소개

시작하는 사람들을 위한 고진감래 C언어

이 책은 현재 절판입니다. 그간 읽어주신 분들께 감사드립니다.

 

쉽고 명쾌한 설명, 유용한 연습문제, 난공불락 포인터까지 정복할 수 있는 명품 C 언어 입문서!

일본 아마존 C 언어 분야 베스트셀러!

출판사 제이펍

원출판사 秀和システム

원서명 苦しんで覚えるC言語(원서 ISBN: 9784798030142)

저자명 MMGames

역자명 박윤미, 박상욱

출판일 2016년 11월 30일

페이지 472쪽

시리즈 (없음)

판 형 크라운판 변형(170*225*23)

제 본 무선(soft cover)

정 가 24,000원

ISBN 979-11-85890-63-0 (93000)

키워드 프로그래밍 / C 언어 / C 프로그래밍 / 변수 / 함수 / 문자열 / 포인터

분야 프로그래밍 / C 언어

관련 사이트

아마존 재팬 도서 소개 페이지

원출판사 도서 소개 페이지

저자 웹 사이트

 

관련 포스트

2016/11/23 - [출간전 책소식] - C 언어가 어려웠나요?

 

관련 시리즈

■ (없음)

 

관련 도서

마인크래프트로 배우는 파이썬 프로그래밍

기초 튼튼 코드 튼튼 다 함께 프로그래밍

나의 첫 프로그래밍: 테트리스를 만들며 배우는

파이썬 더 쉽게, 더 깊게: 친절한 설명과 다양한 예제로 배우는

자바스크립트 & 제이쿼리: 인터랙티브 프론트엔드 웹 개발 교과서

스케치로 시작하는 아두이노 프로그래밍(제2판)

 

관련 파일 다운로드

예제 코드

 

 

샘플 PDF(차례, 옮긴이 머리말, 베타리더 후기, 이 책에 대하여, 1장 '컴퓨터란 무엇인가?', 2장 '세상에서 가장 작은 프로그램')

시작하는사람들을위한고진감래C언어_sample.pdf
다운로드

 

정오표 페이지

■ (등록되는 대로 링크를 걸어드리겠습니다)

 

도서구매 사이트(가나다순)

[강컴] [교보문고] [도서11번가] [반디앤루니스] [알라딘] [예스이십사] [인터파크]

 

도서 소개

쉽고 명쾌한 설명, 유용한 연습문제, 난공불락 포인터까지 정복할 수 있는 명품 C 언어 입문서!

일본 아마존 C 언어 분야 베스트셀러!

 

이 책은 C 언어로 프로그래밍을 시작하려는 분이나 이미 다른 C 언어 책으로 배우려 했으나 성공하지 못한 분들이 C 언어의 주요 기능을 제대로 배울 수 있도록 기획되었다.

 

일본에서 인기가 많은 인터넷 C 언어 강좌를 고스란히 옮긴 이 책은 그 어떤 책보다 요소 하나하나에 대해 확실하게 설명한다. 이미 다른 C 언어 입문서를 읽어 봤지만 아직도 C 언어가 뭔지 잘 모르겠다고 생각하는 분들이 읽었으면 한다.

 

이 책의 주요 내용

  • C 프로그램 작성법
  • 수치 표시와 계산
  • 키보드를 사용한 입력
  • 조건에 따른 처리
  • 문자열을 다루는 방법
  • 매크로 사용법
  • 화면에 문자 표시하기
  • 변수 사용법
  • 비교와 판단
  • 함수 생성 방법
  • 파일 처리
  • 동적 배열

 

저자 소개

MMGames

초등학생 때부터 독학으로 프로그래밍을 시작하였고, 이후 대학 졸업 전까지 다양한 무료 소프트웨어 및 학습 콘텐츠인 ‘괴로워하며 배우는 C 언어(苦しんで覚えるC言語)’를 개발하였다. 현재

는 주식회사 YourGames에서 스마트폰 게임과 앱 개발자로 일하고 있다.

 

역자 소개

박윤미

8년간 일본에서 캐논, 오릭스, 혼다 자동차 등 엔터프라이즈 중심으로 JAVA 개발자로 일하였으며 NHN Japan에서 글로벌 인사 관리 시스템 개발을 담당하였다. 한국으로 돌아와 종합병원 전산실에서 JAVA 개발 담당자로 일했으며, 현재는 두 아이의 엄마로 지내고 있다.

 

박상욱

AWS Premier Consulting Partner인 (주)메가존에서 SA를 책임지고 있으며, 클라우드 인프라 컨설팅과 디자인 및 구축, 운용에 대한 일을 하고 있다. 옮긴 책으로는 《탄력적 개발로 이끄는 AWS 실천 기술》, 《아마존 웹 서비스 클라우드 디자인 패턴 설계 가이드》, 《아마존 웹 서비스 클라우드 디자인 패턴 구축 가이드》, 《인프라스트럭처 자동화 프레임워크 Chef-Solo 입문》, 《네트워크 더 쉽게, 더 깊게》가 있다.

차례

CHAPTER 0 컴퓨터란 무엇인가? 1

0.1 컴퓨터란 무엇인가? 2

0.1.1 현대인과 컴퓨터 2

0.1.2 컴퓨터란? 3

0.1.3 CPU란? 4

0.1.4 메모리란? 5

0.2 프로그램이란 무엇인가? 6

0.2.1 프로그램이란 6

0.2.2 단순한 문법 7

0.2.3 명확한 의미 9

0.2.4 모호한 표현 11

더보기

CHAPTER 1 세상에서 가장 작은 프로그램 15

1.1 실행 결과가 없는 프로그램 16

1.1.1 C 언어의 구조 16

1.1.2 함수 생성 방법 17

1.1.3 특별한 main 함수 18

1.1.4 프로그램 동작 19

1.2 컴파일러는 번역 소프트웨어 20

1.2.1 모든 것은 기계어 20

1.2.2 프로그래밍 언어의 등장 20

1.2.3 C 언어 번역 소프트웨어 22

연습문제 24

CHAPTER 2 프로그램 작성법 25

2.1 프로그램 작성 방법과 규칙 26

2.1.1 토큰 26

2.1.2 프리 포맷 27

2.1.3 다른 규칙 28

2.2 작성 방법 연습 29

2.2.1 함수 작성 방법 29

2.2.2 들여쓰기 29

2.2.3 주석 30

연습문제 33

CHAPTER 3 화면에 문자 표시하기 35

3.1 문자열 표시 36

3.1.1 필수 사항 36

3.1.2 printf 함수 36

3.1.3 어디에 쓸까? 37

3.1.4 설명서 넣기 38

3.1.5 드디어! 40

3.2 개행 문자 42

3.2.1 개행 문제 42

3.2.2 이스케이프 스퀀스 43

연습문제 46

CHAPTER 4 수치 표시와 계산 49

4.1 수치 표시 50

4.1.1 문자열과 수치 50

4.1.2 수치 표시 51

4.1.3 문자열과 함께 표시 52

4.1.4 여러 수치 표시 54

4.2 기본적인 계산 56

4.2.1 계산과 그 결과 표시하기 56

4.2.2 사칙 연산자 58

4.2.3 복잡한 식 59

4.3 수치의 종류 61

4.3.1 여러 종류의 수치 61

4.3.2 실수의 계산 62

연습문제 64

CHAPTER 5 수치 기억과 계산 67

5.1 수치 기억 68

5.1.1 기억의 필요성 68

5.1.2 변수라는 메모리 68

5.1.3 변수 선언 69

5.1.4 변수 값 대입 71

5.1.5 변수를 수치 대신 사용 72

5.1.6 대입과 연산을 동시에 74

5.2 변수의 종류 77

5.2.1 자료형 77

5.2.2 실수를 기억하는 변수 77

5.3 형 변환 80

5.3.1 정수와 실수의 혼합 계산 80

5.3.2 강제적 변환 81

5.4 수치 자릿수 맞추기 83

5.4.1 정수 자릿수 맞추기 83

5.4.2 컴퓨터 형식으로 표시 85

5.4.3 실수 자릿수 맞추기 86

연습문제 88

CHAPTER 6 키보드를 사용한 입력 91

6.1 입력용 함수 92

6.1.1 입력의 필요성 92

6.1.2 scanf 함수 92

6.1.3 수치 입력 93

6.1.4 복수 입력 95

6.1.5 간단한 시그마 프로그램 96

6.2 입력의 공포 99

6.2.1 공포의 입력 실수 99

6.2.2 구분 기호 실수 99

6.2.3 너무 큰 수치 100

6.2.4 문자열의 공포 100

6.2.5 해결 방법 101

연습문제 102

CHAPTER7 비교와 판단 105

7.1 비교문 106

7.1.1 조건 판단 106

7.1.2 조건 판단문 106

7.1.3 비교를 위한 연산자 108

7.2 비교를 위한 연산자 111

7.2.1 등가 연산자 111

7.2.2 관계 연산자 112

7.2.3 논리 연산자 114

7.3 여러 처리의 실행 116

7.3.1 여러 처리의 필요성 116

7.3.2 블록문 117

연습문제 119

CHAPTER 8 조건에 따른 처리 121

8.1 두 가지 조건에 따른 처리 122

8.1.1 조건이 거짓일 때의 처리 122

8.1.2 사용 방법 122

8.1.3 보기 쉬운 작성법 123

8.2 세 가지 조건에 따른 처리 125

8.2.1 조건이 여러 개인 경우 125

8.2.2 보기 쉬운 작성법 127

8.3 번호를 사용한 조건에 따른 처리 128

8.3.1 번호에 대응하는 처리 128

8.3.2 조건 외 처리 130

8.3.3 같은 처리를 한 번에 132

8.3.4 취약한 판단 133

연습문제 135

CHAPTER 9 정해진 횟수의 반복 137

9.1 반복문 138

9.1.1 반복 동작 138

9.1.2 횟수 표시 139

9.2 루프 동작의 구조 141

9.2.1 초기화와 조건 141

9.2.2 무한 루프 142

9.2.3 강제 탈출 143

연습문제 145

CHAPTER 10 횟수를 알 수 없는 반복 147

10.1 횟수를 알 수 없는 루프 148

10.1.1 횟수를 구하는 루프 148

10.1.2 for문과의 호환성 151

10.2 입력 검사 152

10.2.1 사전 검사와 사후 검사 152

10.2.2 입력 검사 153

연습문제 157

CHAPTER 11 함수 생성 방법 159

11.1 사용자 정의 함수 생성 160

11.1.1 프로그램의 부품화 160

11.1.2 사용자 정의 함수 생성 161

11.1.3 프로토타입 선언 162

11.1.4 사용자 정의 함수 호출 164

11.2 함수에 수치 전달 166

11.2.1 인수를 가진 함수 166

11.2.2 함수에 수치 전달하기 167

11.2.3 여러 인수 168

11.3 함수에서 수치 반환하기 171

11.3.1 값을 반환하는 함수 171

11.3.2 반환값의 제한 173

연습문제 174

CHAPTER 12 변수의 수명 177

12.1 함수 내에서 수명이 끝나는 변수 178

12.1.1 로컬 변수의 수명 178

12.1.2 같은 이름, 다른 변수 181

12.1.3 함수의 독립성 182

12.1.4 정확하게는 블록 내부 183

12.2 마지막까지 살아남는 변수 185

12.2.1 글로벌 변수의 수명 185

12.2.2 모든 함수에서 공유 186

12.2.3 로컬 변수는 독립 188

12.3 함수 내에서 살아남는 변수 190

12.3.1 정적 로컬 변수의 수명 190

연습문제 192

CHAPTER 13 여러 변수의 처리 195

13.1 여러 변수를 한 번에 처리 196

13.1.1 배열의 개념 196

13.1.2 배열의 선언 196

13.1.3 배열 처리하기 197

13.2 배열 사용법 199

13.2.1 초깃값 대입 199

13.2.2 전체 요소 표시 201

13.2.3 요소 개수 구하기 202

13.2.4 배열 복사 204

연습문제 207

CHAPTER 14 문자열을 다루는 방법 209

14.1 문자를 다루는 방법 210

14.1.1 문자열을 다루는 변수 210

14.1.2 문자를 다루려면 211

14.1.3 문자 코드 212

14.1.4 문자 계산하기 212

14.2 문자열을 다루는 방법 217

14.2.1 배열로 만들자 217

14.2.2 문자열 초기화 218

14.3 문자열 처리 함수 221

14.3.1 수치로 변환 221

14.3.2 문자열 복사 222

14.3.3 문자열 연결 225

14.3.4 완벽한 문자열 합성 함수 226

14.3.5 문자열 입력 228

14.3.6 문자 수 세기 230

14.3.7 문자열 비교 232

연습문제 235

CHAPTER 15 포인터 변수의 구조 237

15.1 메모리 구조 238

15.1.1 메모리? 238

15.1.2 초대형 1열 사물함 238

15.1.3 CPU 비트 수 239

15.1.4 32비트 사물함 240

15.2 변수와 메모리의 관계 241

15.2.1 변수는 메모리상에 존재 241

15.2.2 메모리상의 번호를 표시 242

15.2.3 여러 변수의 번호 244

15.2.4 배열 번호 245

15.3 &를 붙여야 하는 변수의 정체 247

15.3.1 &를 붙인 변수의 정체 247

15.3.2 모든 것은 값에 의한 호출 247

15.3.3 scanf 함수에서 &를 붙이는 이유 248

15.4 주소를 기억하는 변수 251

15.4.1 포인터라는 단어 251

15.4.2 포인터형 251

15.4.3 포인터 값 253

15.4.4 포인터 변수 253

15.5 포인터 변수 사용하기 255

15.5.1 포인터 변수의 선언 255

15.5.2 주소 대입 256

15.5.3 변수 상태 변경 258

15.5.4 포인터는 바로 가기 260

15.6 인수로 정보 전달 261

15.6.1 포인터형 인수 261

15.6.2 배열형 인수 263

15.6.3 배열형 인수의 특이한 성질 264

15.6.4 주소 전달 266

15.7 배열과 포인터의 이상한 관계 268

15.7.1 배열과 같은 사용법 268

15.7.2 포인터만의 작성법 270

15.7.3 오래되고 좋지 않은 포인터 연산 273

15.7.4 주소 관련 내용은 잊어라 274

연습문제 275

CHAPTER 16 여러 변수형을 하나로 묶음 277

16.1 다른 형의 변수를 하나로 묶음 278

16.1.1 한 번에 데이터를 처리하고 싶을 때 278

16.1.2 구조체의 사용 방법 281

16.1.3 구조체 변수 자체 처리 283

16.1.4 구조체의 간결한 선언 285

16.2 구조체 인수 288

16.2.1 구조체로 정보 전달 288

16.2.2 구조체에서도 포인터 변수 290

16.2.3 구조체에서도 포인터 인수 292

16.3 구조체의 배열 295

16.3.1 구조체의 배열 295

16.3.2 구조체 배열 인수 296

연습문제 297

CHAPTER 17 파일 처리 299

17.1 텍스트 파일 읽고 쓰기 300

17.1.1 파일 처리 300

17.1.2 파일 열기와 닫기 300

17.1.3 파일에 쓰기 302

17.1.4 파일에서 읽기 304

17.2 바이너리 파일 읽고 쓰기 307

17.2.1 텍스트와 바이너리 307

17.2.2 파일 열고 닫기 307

17.2.3 파일에 쓰기 308

17.2.4 파일에서 읽기 311

17.3 드래그 지원 313

17.3.1 드래그된 파일명 가져오기 313

17.3.2 옵션 분석 315

연습문제 317

CHAPTER 18 매크로 기능 319

18.1 변하지 않는 값의 처리 320

18.1.1 처음부터 마지막까지 변하지 않는 값 320

18.1.2 수치에 이름 붙이기 320

18.1.3 문자열에 이름 붙이기 322

18.2 다른 상수 선언 324

18.2.1 const 상수 324

18.2.2 enum 상수 325

18.2.3 수치 지정 enum 상수 328

18.3 간단한 함수 구현 329

18.3.1 #define 전처리 지시자의 고급 기능 329

18.3.2 간단한 함수, 매크로 330

18.3.3 부작용의 공포 333

연습문제 335

CHAPTER 19 동적 배열 337

19.1 자유로운 배열 생성 338

19.1.1 배열의 단점 338

19.1.2 메모리 확보 339

19.1.3 동적 배열의 요소 개수 확대 342

연습문제 344

CHAPTER 20 여러 소스 파일 347

20.1 최소한의 분할 348

20.1.1 여러 소스 파일을 사용하는 이유 348

20.1.2 소스와 헤더 파일 348

20.1.3 최소한의 헤더 파일 349

20.2 분할의 정석 352

20.2.1 변수의 공유 352

20.2.2 extern 선언 353

20.2.3 헤더 파일의 중복 방지 355

CHAPTER 21 키보드 입력 더 알아보기 361

21.1 1행 문자열 362

21.1.1 gets 함수로 키보드 입력 362

21.1.2 버퍼 오버런 대책 364

21.1.3 문자열에서 수치 등을 추출 366

연습문제 358

부록 A 단어와 기호 370

부록 B 표준 라이브러리 함수 목록 380

부록 C ASCII 코드 표 408

연습문제 정답 411

찾아보기 441