# C - Cơ bản Cú pháp

Chào mừng các bạnfuture程序员! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ diệu của lập trình C. Như một người giáo viên khoa học máy tính gần gũi, tôi rất vui mừng được hướng dẫn các bạn qua những podstawy của cú pháp C. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - chúng ta sẽ bắt đầu từ đầu và dần dần xây dựng kiến thức của bạn. Vậy, hãy chuẩn bị sổ tay ảo của bạn, và cùng bắt đầu hành trình lập trình của chúng ta!

## Tokens trong C

Hãy tưởng tượng bạn đang xây dựng một cấu trúc LEGO. Mỗi viên LEGO giống như một token trong lập trình C. Các token là những đơn vị nhỏ nhất của một chương trình C. Chúng bao gồm:

1. Keywords
2. Identifiers
3. Constants
4. Strings
5. Special Symbols
6. Operators

Hãy nghĩ về tokens như là những khối xây dựng của chương trình C của bạn. Giống như bạn không thể xây dựng một 성 LEGO mà không có những mảnh đúng, bạn không thể tạo ra một chương trình C mà không hiểu những token cơ bản này.

## Identifiers trong C

Identifiers là những tên bạn đặt cho các phần tử khác nhau của chương trình, như biến, hàm, mảng, v.v. Chúng giống như thẻ tên cho mã của bạn! Dưới đây là một số quy tắc để tạo identifiers:

1. Phải bắt đầu bằng một chữ cái (a-z hoặc A-Z) hoặc gạch dưới (_)
2. Có thể chứa chữ cái, số (0-9) và gạch dưới
3. Phân biệt chữ hoa và chữ thường (myVariable khác với myvariable)
4. Không thể sử dụng các từ khóa đã được保留

Hãy xem một số ví dụ:

```c
int age;           // Hợp lệ
float _temperature; // Hợp lệ
char 2ndName;       // Không hợp lệ (bắt đầu bằng số)
int if;             // Không hợp lệ (từ khóa đã được保留)

Nhớ rằng việc chọn những tên có ý nghĩa cho identifiers rất quan trọng. Nó giống như đặt tên cho thú cưng của bạn - bạn muốn những tên có ý nghĩa và dễ nhớ!

C - Basic Syntax

Keywords trong C

Keywords là những từ đặc biệt mà C giữ lại cho mục đích riêng của nó. Chúng giống như khách VIP tại một buổi tiệc - chúng có vai trò cụ thể và không thể sử dụng cho bất cứ điều gì khác. Dưới đây là bảng các từ khóa của C:

auto break case char const continue
default do double else enum extern
float for goto if int long
register return short signed sizeof static
struct switch typedef union unsigned void
volatile while

Những từ khóa này là xương sống của lập trình C. Chúng ta sẽ sử dụng nhiều trong số chúng khi tiến hóa trong hành trình học tập của mình.

Dấu phẩy đơn trong C

Ah, dấu phẩy đơn vĩ đại! Trong C, dấu phẩy đơn giống như dấu chấm trong các câu tiếng Anh. Chúng đánh dấu kết thúc của một câu lệnh. Hãy nhớ luôn kết thúc các câu lệnh C của bạn bằng dấu phẩy đơn,否则 chương trình của bạn có thể nổi giận (tức là lỗi cú pháp).

int x = 5;
printf("Hello, World!");

Tôi từng có một học sinh thường xuyên quên dấu phẩy đơn đến mức tôi bắt anh ấy viết "Tôi sẽ không quên dấu phẩy đơn" 100 lần - trong mã C, tất nhiên!

Comments trong C

Comments là những ghi chú bạn để lại cho chính mình hoặc các lập trình viên khác. Compiler sẽ bỏ qua chúng nhưng chúng rất hữu ích để giải thích mã của bạn. Có hai loại comments trong C:

  1. Comments dòng đơn: Sử dụng // cho các comments nằm trên một dòng.
  2. Comments đa dòng: Sử dụng / / cho các comments跨越多行.
// Đây là một comment dòng đơn

/* Đây là một comment đa dòng
   Nó có thể跨越多行
   Rất hữu ích cho các giải thích dài hơn */

int main() {
    // Mã của bạn ở đây
}

Hãy nghĩ về comments như những note dán trong một sách giáo khoa. Chúng giúp bạn (và người khác) hiểu mã của bạn tốt hơn khi bạn quay lại nó sau này.

Mã nguồn

Mã nguồn là bộ hướng dẫn bạn viết bằng ngôn ngữ C. Nó giống như một công thức cho máy tính của bạn để làm theo. Hãy xem một ví dụ đơn giản:

#include <stdio.h>

int main() {
    printf("Hello, World!");
    return 0;
}

Đây là chương trình "Hello, World!" nổi tiếng. Nó thường là chương trình đầu tiên mà người mới bắt đầu viết. Hãy phân tích nó:

  1. #include <stdio.h>: Dòng này bao gồm một tệp header (nhiều hơn về sau).
  2. int main(): Đây là hàm chính nơi chương trình của bạn bắt đầu thực thi.
  3. printf("Hello, World!");: Dòng này in ra "Hello, World!" trên màn hình.
  4. return 0;: Điều này cho biết máy tính rằng chương trình đã kết thúc thành công.

Hàm main()

Hàm main() là nơi chương trình C của bạn bắt đầu thực thi. Nó giống như lối vào một mê cung - mỗi chương trình C phải có một, và chỉ một, hàm main. Dưới đây là cấu trúc cơ bản của nó:

int main() {
    // Mã của bạn ở đây
    return 0;
}

Từ int trước main cho biết rằng hàm này sẽ trả về một giá trị nguyên. return 0; ở cuối cho thấy rằng chương trình đã thực thi thành công.

Tệp Header

Tệp header giống như một cuốn hướng dẫn sử dụng cho chương trình của bạn. Chúng chứa các khai báo hàm và các 定义宏. Tệp header phổ biến nhất là stdio.h, cung cấp các thao tác đầu vào/đầu ra.

#include <stdio.h>
#include <math.h>

int main() {
    printf("Căn bậc hai của 16 là: %.2f", sqrt(16));
    return 0;
}

Trong ví dụ này, chúng ta sử dụng các hàm từ cả stdio.h (cho printf) và math.h (cho sqrt).

Khai báo Biến

Biến là những容器 giữ dữ liệu trong chương trình của bạn. Trước khi bạn có thể sử dụng một biến, bạn cần phải khai báo nó. Dưới đây là cách làm:

int age;         // Khai báo một biến nguyên tên age
float height;    // Khai báo một biến浮点 tên height
char grade;      // Khai báo một biến ký tự tên grade

age = 25;        // Gán giá trị 25 cho age
height = 5.9;    // Gán giá trị 5.9 cho height
grade = 'A';     // Gán ký tự 'A' cho grade

Bạn cũng có thể khai báo và khởi tạo biến trong một dòng:

int score = 95;  // Khai báo và khởi tạo score thành 95

Câu lệnh trong một Chương trình C

Câu lệnh là các hướng dẫn cho máy tính điều gì cần làm. Chúng giống như các bước trong một bài nhảy. Mỗi câu lệnh trong C kết thúc bằng dấu phẩy đơn. Dưới đây là một số ví dụ:

int x = 10;              // Câu lệnh khai báo
printf("x = %d", x);     // Câu lệnh gọi hàm
x = x + 5;               // Câu lệnh gán
if (x > 10) {            // Câu lệnh điều khiển
    printf("x lớn hơn 10");
}

Whitespaces trong một Chương trình C

Whitespace tham chiếu đến các khoảng trống, tab và mới dòng trong mã của bạn. C thường bỏ qua whitespace, nhưng sử dụng chúng hợp lý làm cho mã của bạn dễ đọc hơn. Nó giống như thêm các khoảng cách và dấu cách trong một lá thư - nó làm cho nó dễ đọc hơn.

int main(){printf("Hello");return 0;}  // Hợp lệ nhưng khó đọc

int main() {
    printf("Hello");
    return 0;
}  // Cùng mã, nhưng dễ đọc hơn

Câu lệnh Phức hợp trong C

Một câu lệnh phức hợp, còn được gọi là một khối, là một nhóm các câu lệnh bao quanh bởi dấu ngoặc nhọn {}. Nó giống như một gói deal - nhiều câu lệnh được coi là một đơn vị.

if (score > 90) {
    printf("Excellent!");
    grade = 'A';
    passFactor = 1.0;
}

Trong ví dụ này, tất cả ba câu lệnh trong dấu ngoặc nhọn sẽ được thực thi nếu điều kiện score > 90 là đúng.

Và đó là tất cả, các bạn! Chúng ta đã bao gồm cú pháp cơ bản của lập trình C. Nhớ rằng việc học mã hóa giống như học một ngôn ngữ mới - nó đòi hỏi sự thực hành và kiên nhẫn. Đừng nản lòng nếu bạn không nắm bắt ngay lập tức. Hãy tiếp tục mã hóa, tiếp tục khám phá, và quan trọng nhất, hãy vui vẻ! Trong bài học tiếp theo, chúng ta sẽ đi sâu hơn vào các khái niệm lập trình C. Đến那时, chúc các bạn mã hóa vui vẻ!

Credits: Image by storyset