Các từ khóa, mã định danh và ký hiệu C: Các loại và ví dụ

⚡ Tóm tắt thông minh

Trong ngôn ngữ C, token là các đơn vị nhỏ nhất mà trình biên dịch đọc, và mọi chương trình C đều được xây dựng từ sáu loại token: từ khóa, định danh, hằng số, chuỗi, toán tử và các ký hiệu đặc biệt được lấy từ tập ký tự C.

  • 🔤 Bộ ký tự: Mã nguồn C sử dụng các chữ cái, chữ số, khoảng trắng và các ký tự đặc biệt kết hợp với nhau để tạo thành mọi mã thông báo và ký hiệu.
  • 🧩 Sáu loại mã thông báo: Trình biên dịch chia chương trình thành các từ khóa, định danh, hằng số, chuỗi ký tự, toán tử và ký hiệu đặc biệt.
  • 🔑 Từ khóa: Ngôn ngữ C dành riêng 32 từ khóa viết thường như int, for và return, mỗi từ khóa có một ý nghĩa cố định mà bạn không thể định nghĩa lại.
  • 🏷️ Định danh: Tên do người dùng định nghĩa cho các biến và hàm phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới và tránh sử dụng các từ khóa dành riêng.
  • 🔢 Hằng số và chuỗi ký tự: Hằng số chứa các giá trị cố định, trong khi chuỗi ký tự nhóm các ký tự bên trong dấu ngoặc kép và kết thúc bằng ký tự null.
  • 🤖 Hỗ trợ AI: GitHub Copilot và các công cụ hỗ trợ tương tự đề xuất các định danh hợp lệ, cảnh báo xung đột từ khóa và tăng tốc quá trình lập trình C.

C. Mã thông báo, định danh và từ khóa

Tập hợp ký tự trong ngôn ngữ C là gì?

Cũng giống như mọi ngôn ngữ lập trình khác, C cũng có bộ ký tự riêng. Một chương trình là một tập hợp các lệnh, khi được thực thi sẽ tạo ra một kết quả đầu ra. Dữ liệu được xử lý bởi một chương trình bao gồm nhiều ký tự và ký hiệu khác nhau. Kết quả đầu ra được tạo ra cũng là sự kết hợp của các ký tự và ký hiệu.

Tập hợp ký tự trong ngôn ngữ C được chia thành:

  • Bức thư
  • Numbers
  • Nhân vật đặc biệt
  • Khoảng trắng (khoảng trắng)

Trình biên dịch thường bỏ qua việc sử dụng các ký tự, nhưng chúng được sử dụng rộng rãi để định dạng dữ liệu. Sau đây là bảng ký tự trong lập trình C:

1) Các chữ cái

  • Ký tự viết hoa (AZ)
  • Ký tự viết thường (az)

2) Numbers

  • Tất cả các chữ số từ 0 đến 9

3) Khoảng trắng

  • không gian trống
  • Dòng mới
  • Vận chuyển trở lại
  • Tab ngang

4) Ký tự đặc biệt

Các ký tự đặc biệt trong ngôn ngữ C được thể hiện trong bảng sau:

Tính cách đặc biệt Mô tả Chi tiết
, (dấu phẩy) { (mở dấu ngoặc nhọn)
. (Giai đoạn) } (dấu ngoặc nhọn đóng)
; (dấu chấm phẩy) [ (dấu ngoặc trái)
: (Đại tràng) ] (dấu ngoặc vuông bên phải)
? (dấu chấm hỏi) ((mở ngoặc trái)
' (dấu nháy đơn) ) (dấu ngoặc đơn đóng bên phải)
” (dấu ngoặc kép) & (ký hiệu)
! (dấu chấm than) ^ (dấu mũ)
|(thanh dọc) + (bổ sung)
/ (dấu gạch chéo) – (phụ lục)tracsự)
\ (dấu gạch chéo ngược) * (phép nhân)
~ (dấu ngã) / (phân công)
_ (gạch dưới) > (dấu ngoặc lớn hơn hoặc đóng)
$ (ký hiệu đô la) < (nhỏ hơn hoặc dấu ngoặc nhọn mở)
% (ký hiệu phần trăm) # (dấu băm)

Token trong ngôn ngữ C là gì?

Token là đơn vị nhỏ nhất trong một chương trình C. Nó bao gồm mọi từ và dấu câu mà bạn bắt gặp trong chương trình C của mình. Trình biên dịch chia chương trình thành các đơn vị nhỏ nhất có thể (token) và tiến hành các giai đoạn biên dịch khác nhau. Token được chia thành sáu loại khác nhau, đó là Keywords, Operators, Chuỗi, Hằng, Ký tự đặc biệt và Mã định danh.

Sáu loại mã thông báo trong C

Các phần tiếp theo sẽ xem xét từng loại mã thông báo này, bắt đầu với hai loại tạo nên mọi câu lệnh C: từ khóa và định danh.

Từ khóa trong C

Trong ngôn ngữ C, mỗi từ đều có thể là từ khóa hoặc định danh.

Từ khóa có nghĩa cố định và không thể thay đổi. Chúng đóng vai trò là các khối xây dựng của một chương trình C. Có tổng cộng 32 từ khóa trong C. Từ khóa được viết bằng chữ thường.

Bảng sau đây thể hiện các từ khóa trong ngôn ngữ C:

Từ khóa trong C Programming Language
tự động tăng gấp đôi int cấu trúc
phá vỡ khác Dài chuyển đổi
trường hợp liệt kê ghi danh đánh máy
xe tăng bên ngoài trở lại công đoàn
const ngắn phao unsigned
tiếp tục cho Ký kết làm mất hiệu lực
mặc định goto kích thước Dễ bay hơi
do if tĩnh trong khi

Các định danh trong C

Mã định danh chỉ đơn giản là một tên được gán cho một phần tử trong chương trình, ví dụ, tên của một... biến hoặc một hàm. Các định danh trong ngôn ngữ C là các tên do người dùng định nghĩa, bao gồm bộ ký tự chuẩn C. Như tên gọi cho thấy, định danh được sử dụng để xác định một phần tử cụ thể trong chương trình. Mỗi định danh phải có một tên duy nhất. Các quy tắc sau đây phải được tuân thủ đối với định danh:

  • Ký tự đầu tiên phải luôn là bảng chữ cái hoặc dấu gạch dưới.
  • Nó phải được hình thành chỉ bằng các chữ cái, số hoặc dấu gạch dưới.
  • Một từ khóa không thể được sử dụng làm định danh.
  • Nó không được chứa bất kỳ ký tự khoảng trắng nào.
  • Tên phải có ý nghĩa.

Hằng số trong C

Hằng số là một mã thông báo có giá trị không thay đổi trong suốt quá trình thực thi chương trình. Hằng số trong C cho phép bạn lưu trữ dữ liệu cố định, chẳng hạn như số hoặc văn bản, và bảo vệ chúng khỏi bị sửa đổi ngoài ý muốn. Chúng thuộc một vài loại phổ biến:

  • Hằng số nguyên — các số nguyên như 10, -45 hoặc 0.
  • Hằng số dấu phẩy động — các số thực có dấu thập phân, ví dụ như 3.14 hoặc -0.5.
  • Hằng ký tự — một ký tự đơn nằm trong dấu ngoặc đơn, ví dụ như 'A' hoặc '9'.
  • Hằng chuỗi — một chuỗi ký tự nằm trong dấu ngoặc kép, ví dụ như “Guru99. "

Bạn có thể định nghĩa một hằng số bằng cách sử dụng const đủ điều kiện hoặc #define ví dụ: chỉ thị tiền xử lý const int DAYS = 7;Để hiểu rõ hơn về cách khai báo các giá trị cố định, hãy xem hướng dẫn về C. biến, kiểu dữ liệu và hằng số.

Chuỗi trong C

Trong ngôn ngữ C, chuỗi là một mảng ký tự một chiều kết thúc bằng ký tự null (\0). Vì C không có kiểu dữ liệu chuỗi chuyên dụng, nên các chuỗi ký tự được lưu trữ dưới dạng mảng ký tự, và ký tự null đánh dấu vị trí kết thúc của văn bản. Điều này cho phép các hàm thư viện tìm thấy điểm kết thúc của chuỗi mà không cần bộ đếm độ dài riêng biệt.

Bạn có thể tạo một chuỗi theo hai cách phổ biến:

  • Dưới dạng mảng ký tự: char name[] = "Guru99";
  • Là một con trỏ đến một giá trị cố định: char *name = "Guru99";

Cả hai dạng đều lưu trữ sáu ký tự hiển thị cộng với ký tự null kết thúc. Để tìm hiểu thêm về mảng ký tự và xử lý văn bản, hãy đọc hướng dẫn tại [liên kết]. chuỗi ký tự trong C.

Operacác tors trong C

Toán tử là một mã lệnh hướng dẫn trình biên dịch thực hiện một phép toán cụ thể, phép toán quan hệ hoặc phép toán logic trên một hoặc nhiều toán hạng. OperaCác toán hạng là các ký hiệu hành động của một chương trình C, và các giá trị mà chúng tác động lên được gọi là toán hạng. C phân loại chúng thành nhiều nhóm:

  • Toán tử số học — thực hiện các phép tính như +, -, *, /, và %.
  • Toán tử quan hệ — So sánh hai giá trị, chẳng hạn như ==, !=, >, và <.
  • khai thác hợp lý — Kết hợp các điều kiện, chẳng hạn như &&, || và !.
  • Toán tử chuyển nhượng — Lưu trữ một giá trị vào một biến, ví dụ như = và +=.
  • Toán tử bitwise — xử lý các bit riêng lẻ, chẳng hạn như &, |, ^ và ~.

Cùng với từ khóa và định danh, các toán tử cho phép một chương trình thể hiện các chỉ thị hoàn chỉnh mà trình biên dịch có thể dịch thành mã máy.

Câu Hỏi Thường Gặp

Đúng vậy. C là ngôn ngữ phân biệt chữ hoa và chữ thường, vì vậy chữ hoa và chữ thường được coi là khác nhau. 32 từ khóa phải được viết bằng chữ thường, và các định danh như Total và total đề cập đến hai phần tử riêng biệt trong cùng một chương trình.

Chuẩn C không đặt ra giới hạn cứng nhắc nào, nhưng trình biên dịch tuân thủ chỉ cần coi 63 ký tự đầu tiên của định danh nội bộ và 31 ký tự đầu tiên của định danh bên ngoài là quan trọng. Giữping Tên ngắn gọn và mô tả giúp tránh những bất ngờ về tính tương thích.

Không. Khoảng trắng, dấu tab, xuống dòng và chú thích là các ký tự phân tách mà trình biên dịch sử dụng để phân biệt các token, sau đó loại bỏ chúng. Chúng không được tính vào sáu loại token, mặc dù một khoảng trắng có thể có ý nghĩa quan trọng bên trong một chuỗi ký tự.

Trong giai đoạn đầu tiên, được gọi là phân tích từ vựng, trình biên dịch quét mã nguồn từng ký tự một và nhóm chúng thành các đơn vị nhỏ nhất có ý nghĩa. Mỗi token sau đó được phân loại là từ khóa, định danh, hằng số, chuỗi ký tự, toán tử hoặc ký hiệu đặc biệt.

Lexeme là chuỗi ký tự thực tế trong mã nguồn, ví dụ như chuỗi văn bản int hoặc count. Token là loại mà trình biên dịch gán cho lexeme đó, ví dụ như từ khóa hoặc định danh. Mỗi token đều xuất phát từ một lexeme tương ứng.

Hằng ký tự là một ký tự đơn nằm trong dấu ngoặc đơn, ví dụ như 'A', và chiếm một byte. Chuỗi ký tự là một chuỗi các ký tự nằm trong dấu ngoặc kép, ví dụ như... Guru99, và luôn kết thúc bằng một ký tự null ẩn, cần thêm một byte.

Đúng vậy. Các trợ lý lập trình AI đề xuất các định danh hợp lệ, các câu lệnh hoàn chỉnh dựa trên từ khóa và cảnh báo các tên xung đột với các từ khóa dành riêng khi bạn gõ. Chúng cũng có thể chuyển đổi một bình luận bằng ngôn ngữ thông thường thành các khai báo C chính xác, mặc dù bạn vẫn nên xem lại mã được tạo ra.

Trợ lý GitHub Chức năng tự động hoàn thành các định danh C, từ khóa và toàn bộ câu lệnh từ nhận xét hoặc tên biến của bạn. Nó đề xuất các tên có ý nghĩa, cảnh báo về xung đột từ khóa và soạn thảo mã mẫu, nhưng mọi đề xuất vẫn cần được xem xét cẩn thận.

Tóm tắt bài viết này với: