
http://vietjack.com/cprogramming/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 1
Mục lục
Giới thiệu về Ngôn ngữ C ..................................................................................................... 6
Đối với độc giả ...................................................................................................................... 6
Điều kiện tiền đề ................................................................................................................... 6
Tổng quan về Ngôn ngữ C ................................................................................................... 6
Sự thật về ngôn ngữ C ..................................................................................................... 7
Tại sao lại sử dụng C? ...................................................................................................... 7
Chương trình C ................................................................................................................ 8
Cài đặt môi trường C ............................................................................................................ 8
Cài đặt môi trường cục bộ - Local ..................................................................................... 8
Text Editor ........................................................................................................................ 8
Bộ biên dịch C .................................................................................................................. 8
Cài đặt trên môi trường UNIX/Linux .................................................................................. 9
Cài đặt trên môi trường Mac OS ....................................................................................... 9
Cài đặt trên Windows ...................................................................................................... 10
Cấu trúc chương trình C ..................................................................................................... 10
Chương trình C: Hello World........................................................................................... 10
Biên dịch & Thực thi Chương trình C .............................................................................. 11
Cú pháp C cơ bản .............................................................................................................. 12
Các Token trong C .......................................................................................................... 12
Dấu chấm phảy ; trong C ................................................................................................ 12
Comment trong C ........................................................................................................... 13
Định danh (Identifier) trong C .......................................................................................... 13
Các từ khóa trong C ........................................................................................................ 13
Khoảng trắng trong C ...................................................................................................... 14
Kiểu dữ liệu trong C ............................................................................................................ 14
Kiểu integer ..................................................................................................................... 15
Kiểu dấu chấm động (Floating-Point) .............................................................................. 17

http://vietjack.com/cprogramming/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 2
Kiểu void ......................................................................................................................... 18
Biến trong C ........................................................................................................................ 19
Định nghĩa biến trong ngôn ngữ C: ................................................................................. 19
Khai báo biến trong ngôn ngữ C: .................................................................................... 20
Ví dụ ............................................................................................................................... 21
Lvalue và Rvalue trong C: ............................................................................................... 22
Hằng số trong C .................................................................................................................. 23
Hằng số nguyên - Interger .............................................................................................. 23
Hằng số dấu chấm động ................................................................................................ 24
Hằng số ký tự ................................................................................................................. 24
Hằng số chuỗi (string) ..................................................................................................... 26
Định nghĩa hằng số ......................................................................................................... 26
Sử dụng bộ tiền xử lý #define ......................................................................................... 26
Sử dụng từ khóa const ................................................................................................... 27
Lớp lưu trữ trong C ............................................................................................................. 28
Lớp lưu trữ auto .............................................................................................................. 28
Lớp lưu trữ register ......................................................................................................... 29
Lớp lưu trữ static ............................................................................................................. 29
Lớp lưu trữ extern ........................................................................................................... 30
Toán tử trong C .................................................................................................................. 31
Toán tử số học ................................................................................................................ 32
Toán tử quan hệ ............................................................................................................. 33
Toán tử logic ................................................................................................................... 34
Toán tử so sánh bit ......................................................................................................... 35
Toán tử gán .................................................................................................................... 38
Các toán tử hỗn hợp ↦ sizeof & ternary ......................................................................... 40
Thứ tự ưu tiên toán tử trong C ........................................................................................ 41
Điều khiển luồng trong C ..................................................................................................... 43
Toán tử ? : ...................................................................................................................... 44

http://vietjack.com/cprogramming/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 3
Vòng lặp trong C ................................................................................................................. 44
Các lệnh điều khiển vòng lặp .......................................................................................... 46
Vòng lặp vô hạn .............................................................................................................. 46
Hàm trong C ....................................................................................................................... 47
Định nghĩa một hàm ....................................................................................................... 47
Ví dụ: .............................................................................................................................. 48
Khai báo hàm ................................................................................................................. 49
Gọi hàm .......................................................................................................................... 49
Tham số của hàm: .......................................................................................................... 50
Quy tắc phạm vi trong C ..................................................................................................... 51
Biến cục bộ ..................................................................................................................... 52
Biến toàn cục .................................................................................................................. 52
Tham số chính thức ........................................................................................................ 54
Khởi tạo biến toàn cục và biến cục bộ ............................................................................. 55
Mảng trong Ngôn ngữ C ..................................................................................................... 55
Khai báo mảng trong C ................................................................................................... 56
Khởi tạo mảng trong C .................................................................................................... 56
Truy cập các phần tử mảng trong C ................................................................................ 57
Chi tiết về mảng trong C .................................................................................................. 58
Con trỏ trong C ................................................................................................................... 59
Con trỏ là gì? .................................................................................................................. 60
Cách sử dụng con trỏ? ................................................................................................... 61
Con trỏ NULL trong ngôn ngữ C ..................................................................................... 62
Chi tiết về con trỏ: ............................................................................................................ 62
Chuỗi trong C ...................................................................................................................... 63
Cấu trúc trong C .................................................................................................................. 66
Định nghĩa một cấu trúc .................................................................................................. 66
Truy cập các thành phần của cấu trúc ............................................................................ 67
Các cấu trúc như các tham số hàm ................................................................................ 69

http://vietjack.com/cprogramming/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 4
Con trỏ tới cấu trúc .......................................................................................................... 71
Các trường bit - Bit Fields ................................................................................................ 73
Union trong C ...................................................................................................................... 73
Định nghĩa một Union ..................................................................................................... 74
Truy xuất thành viên của Union ....................................................................................... 75
Trường Bit trong C .............................................................................................................. 77
Khai báo Trường Bit ....................................................................................................... 79
Từ khóa typedef trong C ..................................................................................................... 81
typedef vs #define ........................................................................................................... 82
Input & Output trong C ........................................................................................................ 83
Các File tiêu chuẩn ......................................................................................................... 84
Hàm getchar() & putchar() .............................................................................................. 84
Hàm gets() & puts() ......................................................................................................... 85
Hàm scanf() và printf() ..................................................................................................... 86
Nhập - Xuất File trong C ...................................................................................................... 87
Mở file ............................................................................................................................. 87
Đóng file .......................................................................................................................... 88
Ghi một file ...................................................................................................................... 89
Đọc file ............................................................................................................................ 89
Hàm Nhập – Xuất nhị phân ............................................................................................ 91
Bộ tiền xử lý trong C ............................................................................................................ 91
Ví dụ bộ tiền xử lý ........................................................................................................... 92
Các Macro định nghĩa trước ........................................................................................... 93
Toán tử tiền xử lý ............................................................................................................ 95
Phần tiếp tục macro (\) ........................................................................................... 95
Dấu thăng (#) ........................................................................................................... 95
Toán tử Token Pasting (##) .................................................................................. 95
Toán tử defined() .................................................................................................... 96
Macro tham số ................................................................................................................ 97

http://vietjack.com/cprogramming/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 5
Header File trong C ............................................................................................................. 98
Cú pháp Include .............................................................................................................. 98
Hoạt động Include ........................................................................................................... 98
Once-Only Header .......................................................................................................... 99
Include với các điều kiện ................................................................................................. 99
Ép kiểu trong C ................................................................................................................. 100
Sự nâng cấp integer ..................................................................................................... 101
Phép chuyển đổi số học thông thường ......................................................................... 102
Xử lý lỗi trong C ................................................................................................................ 103
Hàm perror() và strerror() và thông báo lỗi errno ............................................................ 103
Lỗi chia cho số 0 ........................................................................................................... 105
Trạng thái thoát chương trình ........................................................................................ 105
Đệ quy trong C .................................................................................................................. 106
Tính toán giai thừa ........................................................................................................ 107
Dãy Fibonacci ............................................................................................................... 108
Tham số biến trong C ....................................................................................................... 108
Quản lý bộ nhớ trong C .................................................................................................... 111
Cấp phát bộ nhớ động .................................................................................................. 111
Thay đổi và giải phóng bộ nhớ ...................................................................................... 113
Tham số dòng lệnh trong C .............................................................................................. 114
C - Tài liệu tham khảo ....................................................................................................... 117
Các đường link hữu ích về C ........................................................................................ 117