책 소개
프로그래밍은 연습으로 배우는 것이다!
예제만 따라해서는 프로그래밍을 배우기 어렵다
문법을 설명하는 예제만 따라해서는 프로그래밍을 배우기 어렵다. 문법을 익힌 다음에는 스스로 생각해서 풀어보는 연습이 중요하다. 수학 문제집, 토익 문제집을 풀면서 실력을 향상시키는 것과 같다. 프로그래밍도 문법을 배운 뒤에는 스스로 생각해서 풀어보는 다양한 연습문제가 필요하다. 400개 이상의 연습으로 프로그래밍을 배워라.
C 언어 문법만 파서는 C 언어를 배울 수 없다
이 책을 졸업하려면 130개 이상의 심사문제를 풀어야 한다. 코딩 도장 온라인 심사(dojang.io)를 모두 통과해야 한다. 즉, 130개 이상의 프로그램을 작성하고 심사를 통과하는 과정에서 C 언어가 아니라 C 언어 프로그래밍을 배운다. 심사를 통과하면 통과할수록 기본이 튼튼해진다. 유닛 85개, 예제 750개는 130개 이상의 심사문제를 통과하기 위한 입문 과정이다. 프로그래밍을 연습하는 과정에서 C 언어는 자연스럽게 배울 수 있다.
PC, 스마트폰, 언제 어디서나 학습한다
코딩 도장(dojang.io)에 접속하면 언제 어디서나 C 언어를 공부할 수 있다. 지하철로 이동하는 짬짬이 공부할 수 있다. 학습한 내용은 코딩 도장 학습 진도표에 기록되므로 PC와 스마트폰, 어디서 학습해도 된다.
예제 소스: https://github.com/gilbutITbook/006759
코딩 도장: https://dojang.io
[베타테스터의 한마디]
이 책처럼 이해하기 쉬운 책은 없었습니다
"C 언어 책은 많습니다. 하지만 제대로 된 책은 단 한 권입니다. 그게 바로 이 책입니다. C 언어를 공부하는 분들이 꼭 봐야 할 책!! 기초부터 고급 기술까지 탄탄하게 설명이 되어있습니다. 다른 C 언어 책은 어렵고 지루합니다. 하지만 이 책은 누가 읽어도 쉽고 재미있게 C 언어를 배울 수 있습니다.
많은 C 언어 책을 봤지만, 이 책처럼 이해하기 쉬운 책은 없었습니다. 처음 공부하는 분과 C 언어 공부를 해봤던 분 모두 이 책 한 권이면 해결될 것입니다. 이 책은 C 언어를 다시 공부하시고 싶으신 분, 기초를 확실히 잡고 싶으신 분과 재미있게 공부 하고 싶으신 분들께 추천해 드립니다.
김현명 | 20대
직접 생각하고 코드를 입력하는 과정이 재미있었습니다.
C 언어도 프로그래밍도 처음이었는데도 하나하나 배우고 문제를 푸는 데 무엇보다 '재미'가 있었습니다. 쉬운 부분도 있었고 어려운 부분도 있었는데 문제를 통해 새로운 방향으로 생각할 수 있어 신선했습니다. 그냥 글자만 읽는 것이 아니라 직접 생각하고 코드를 입력하는 과정이 재미있었던 것 같습니다.
이원희 | 30대
강좌 내용도 지루하지 않았고 이해하기 쉽습니다.
제어 흐름, 데이터 구조를 활용하는 방법과 ANSI C가 정의한 가이드를 제시한 점이 좋았습니다. 강좌 내용도 지루하지 않았고 이해하기 쉽게 되어 있어 많은 도움이 되었습니다.
정구민 | 20대
포인터와 메모리에 대해 확실하게 연습!
C 언어의 아주 기초부터 착실히 다질 수 있었습니다. 특히, 포인터와 메모리에 대해 확실히 연습해볼 수 있습니다.
Hyukun | 30대
C 언어를 처음 접하는 사람부터 경험자까지!
C 언어에 대해 처음 접하는 사람부터 공부하고 있는 사람까지 처음 시작하기에도 좋고, 알고 있던 내용을 복습하기에도 좋은 것 같습니다!
이창호 | 20대
작가 소개
저자 : 남재윤
마냥 컴퓨터가 좋아서 프로그래머의 길을 걷고 있다. 뭔가 아이디어가 떠오르면 그 자리에서 만들어보고, 새로운 프로그래밍 언어가 나올 때마다 어디에 어떻게 쓰면 좋을지 생각하며 행복한 고민에 빠진다. 수학과 천문학에도 관심이 많으며 각종 위키에서 관련 정보를 읽는 것이 취미이다.
목 차
UNIT 1. 소프트웨어 교육과 C 언어
UNIT 2. Visual Studio 설치하기
UNIT 3. Hello, world!로 시작하기
UNIT 4. 기본 문법 알아보기
핵심 정리
Q & A
UNIT 5. 변수 만들기
UNIT 6. 디버거 사용하기
UNIT 7. 정수 자료형 사용하기
UNIT 8. 실수 자료형 사용하기
핵심 정리
Q & A
UNIT 9. 문자 자료형 사용하기
UNIT 10. 상수 사용하기
UNIT 11. 입력 값을 변수에 저장하기
핵심 정리
Q & A
UNIT 12. 덧셈, 뺄셈하기
UNIT 13. 증가, 감소 연산자 사용하기
UNIT 14. 곱셈, 나눗셈하기
UNIT 15. 나머지 연산하기
UNIT 16. 자료형의 확장과 축소 알아보기
핵심 정리
Q & A
UNIT 17. if 조건문으로 특정 조건일 때 코드 실행하기
UNIT 18. else를 사용하여 두 방향으로 분기하기
UNIT 19. else if를 사용하여 여러 방향으로 분기하기
핵심 정리
Q & A
UNIT 20. 비교 연산자와 삼항 연산자 사용하기
UNIT 21. 논리 연산자 사용하기
UNIT 22. 불 자료형 사용하기
핵심 정리
Q & A
UNIT 23. 비트 연산자 사용하기
UNIT 24. 비트 연산자 응용하기
UNIT 25. 연산자 우선순위 알아보기
핵심 정리
Q & A
UNIT 26. switch 분기문으로 다양한 조건 처리하기
UNIT 27. for 반복문으로 Hello, world! 100번 출력하기
UNIT 28. while 반복문으로 Hello, world! 100번 출력하기
UNIT 29. do while 반복문으로 최소 한 번은 실행하기
UNIT 30. break, continue로 반복문 제어하기
UNIT 31. 계단식으로 별 출력하기
핵심 정리
Q & A
UNIT 32. goto로 프로그램의 흐름을 원하는대로 바꾸기
UNIT 33. FizzBuzz
핵심 정리
Q & A
UNIT 34. 포인터 사용하기
UNIT 35. 메모리 사용하기
핵심 정리
Q & A
UNIT 36. 배열 사용하기
UNIT 37. 2차원 배열 사용하기
UNIT 38. 포인터와 배열 응용하기
핵심 정리
Q & A
UNIT 39. 문자열 사용하기
UNIT 40. 입력 값을 문자열에 저장하기
핵심 정리
Q & A
UNIT 41. 문자열의 길이를 구하고 비교하기
UNIT 42. 문자열을 복사하고 붙이기
UNIT 43. 문자열 만들기
UNIT 44. 문자열 검색하기
UNIT 45. 문자열 자르기
UNIT 46. 문자열과 숫자를 서로 변환하기
UNIT 47. 회문 판별과 N-gram 만들기
핵심 정리
Q & A
UNIT 48. 구조체 사용하기
UNIT 49. 구조체 포인터 사용하기
UNIT 50. 두 점 사이의 거리 구하기
핵심 정리
Q & A
[2권 목차]
UNIT 51. 구조체 멤버 정렬 사용하기
UNIT 52. 구조체와 메모리 활용하기
UNIT 53. 구조체 배열 사용하기
핵심 정리
Q & A
UNIT 54. 공용체 사용하기
UNIT 55. 구조체와 공용체 활용하기
핵심 정리
Q & A
UNIT 56. 구조체 비트 필드 사용하기
UNIT 57. 열거형 사용하기
핵심 정리
Q & A
UNIT 58. 자료형 변환하기
UNIT 59. 포인터 연산 사용하기
핵심 정리
Q & A
UNIT 60. 함수 사용하기
UNIT 61. 함수에서 반환값 사용하기
UNIT 62. 함수에서 매개변수 사용하기
핵심 정리
Q & A
UNIT 63. 함수에서 포인터 매개변수 사용하기
UNIT 64. 함수에서 배열 매개변수 사용하기
UNIT 65. 함수에서 구조체 매개변수 사용하기
핵심 정리
Q & A
UNIT 66. 함수에서 가변 인자 사용하기
UNIT 67. 함수에서 재귀호출 사용하기
UNIT 68. 함수 포인터 사용하기
UNIT 69. 함수 포인터 활용하기
핵심 정리
Q & A
UNIT 70. 파일에서 문자열을 읽고 쓰기
UNIT 71. 파일 포인터 활용하기
UNIT 72. 파일에서 구조체를 읽고 쓰기
핵심 정리
Q & A
UNIT 73. 배열 정렬하기
UNIT 74. 연결 리스트 구현하기
핵심 정리
Q & A
UNIT 75. 매크로 사용하기
UNIT 76. 조건부 컴파일과 파일 포함 사용하기
UNIT 77. 여러 소스 파일 사용하기
핵심 정리
Q & A
UNIT 78. 전역 변수 사용하기
UNIT 79. 기억 부류 지정자 사용하기
UNIT 80. 실행 파일 옵션 사용하기
핵심 정리
Q & A
UNIT 81. 실전 예제: 비트맵 파일을 아스키 아트로 변환하기
UNIT 82. 실전 예제: 파일 아카이브 구현하기
핵심 정리
Q & A
UNIT 83. 실전 예제: JSON 파일 읽고 쓰기
UNIT 84. 실전 예제: GitHub의 소스 코드 사용하기
핵심 정리
Q & A
UNIT 85. 부록
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |