C Ngôn Ngữ Cơ Bản

Trong bài viết này, chúng ta sẽ tìm hiểu về ngôn ngữ lập trình C, một trong những ngôn ngữ phổ biến nhất và mạnh mẽ nhất hiện nay. Đối tượng phù hợp: Học sinh thi đỗ vào trường đại học, đặc biệt là các môn liên quan đến cấu trúc dữ liệu (cần sử dụng C/C++). Học sinh thi đỗ vào trường đại học với môn lập trình C/C++. Những người tự học lập trìn ...

Đăng vào ngày 7 tháng 6 lúc 22:38

Các kỹ thuật nâng cao sử dụng #define trong C và C++

Định nghĩa và hủy bỏ macro #define PI 3.14 // Thay thế tại thời điểm biên dịch #define T1 3+4 // Dễ gây nhầm lẫn #define T2 (3+4) // Thêm dấu ngoặc để rõ nghĩa float r = 1.0; float area = PI * r * r; int a = 2* T1; // Sau khi thay thế: int a = 2*3+4, không đúng ý int a = 2* T2; // Sau khi thay thế: int a = 2*(3+4), đúng ý ...

Đăng vào ngày 4 tháng 6 lúc 16:26

So sánh hiệu suất I/O giữa C++ cin và C scanf

Người tham gia các cuộc thi lập trình thường gặp thách thức khi dữ liệu đầu vào rất lớn, và việc đọc dữ liệu từ stdin có thể trở thành điểm nghẽn hiệu năng. Các vấn đề như vậy thường đi kèm cảnh báo "Warning: large I/O data". Hãy tạo một tệp thử nghiệm chứa một dòng 16 byte và ký tự xuống dòng, với tổng cộng 1.000.000 dòng, tạo ra tệp 17MB để t ...

Đăng vào ngày 4 tháng 6 lúc 06:06

Triển khai danh sách liên kết đơn trong C

Thiết kế cấu trúc nút typedef struct Node { void* payload; struct Node* next; } Node; payload: Con trỏ kiểu void* lưu dữ liệu, cho phép linh hoạt với nhiều kiểu dữ liệu. next: Con trỏ đến nút tiếp theo trong danh sách. Thiết kế cấu trúc danh sách typedef struct LinkedList { Node head; int length; } LinkedList; head: Nú ...

Đăng vào ngày 3 tháng 6 lúc 17:18

Truyền thông liên tiến trình trên Android: IPC, RPC, Hệ thống Binder và Gọi hứng ứng dụng C

Truyền thông liên tiến trình trên Android: IPC, RPC, Hệ thống Binder và Gọi hứng ứng dụng C 1. Khái niệm cơ bản IPC (Inter-Process Communication) hay Truyền thông liên tiến trình là cơ chế một tiến trình gửi dữ liệu đến một tiến trình khác. Khi ứng dụng A cần trao đổi dữ liệu với ứng dụng B, cơ chế IPC được sử dụng. RPC (Remote Procedure Call) ...

Đăng vào ngày 30 tháng 5 lúc 21:03

Cơ chế tối ưu switch...case bằng bảng nhảy

1. Cú pháp cơ bản của switch...case Câu lệnh switch trong C/C++ yêu cầu biểu thức điều khiển phải là kiểu nguyên (như int, char, enum, v.v.), không hỗ trợ kiểu thực (float, double) hay chuỗi ký tự. switch (biểu_thức) { case hằng_số_1: // khối lệnh break; case hằng_số_2: // khối lệnh break; default: ...

Đăng vào ngày 30 tháng 5 lúc 13:12

Làm việc với mảng hai chiều (ma trận) trong C

Giới thiệu về Mảng Hai Chiều Mảng hai chiều trong C được lưu trữ tuyến tính trong bộ nhớ, nhưng về mặt logic, nó được xem như một bảng có hàng và cột. Việc hiểu rõ cách khởi tạo và thao tác với mảng hai chiều là nền tảng quan trọng để nắm vững con trỏ và mảng. 1. Các Cách Khởi Tạo Mảng Hai Chiều Cách 1: Khởi tạo toàn bộ giá trị trong một cặp ...

Đăng vào ngày 28 tháng 5 lúc 07:30

Cấu trúc dữ liệu danh sách liên kết vòng hai chiều

Danh sách liên kết vòng một chiều chỉ có con trỏ next trỏ đến nút kế tiếp, với nút cuối cùng trỏ ngược về nút đầu để tạo thành vòng khép kín. Trong khi đó, danh sách hai chiều cung cấp khả năng di chuyển linh hoạt hơn nhờ mỗi nút chứa hai con trỏ: next (trỏ tới nút sau) và prev (trỏ tới nút trước). Điều này cho phép duyệt theo cả hai hướng, tối ...

Đăng vào ngày 24 tháng 5 lúc 17:19

Cấu trúc dữ liệu ngăn xếp và hàng đợi trong C

Ngăn xếp và hàng đợi là hai cấu trúc tuyến tính đặc biệt, khác với danh sách thông thường cho phép chèn/xóa tại bất kỳ vị trí nào, cả hai chỉ cho phép thao tác tại các đầu cố định. Ngăn xếp (Stack) tuân theo nguyên tắc FIFO ngược — LIFO (Last In, First Out): phần tử được thêm vào cuối cùng sẽ được lấy ra đầu tiên. Trong một ngăn xếp: Đỉnh ...

Đăng vào ngày 22 tháng 5 lúc 09:38

Kích thước kiểu dữ liệu trong C

Kích thước kiểu dữ liệu trong ngôn ngữ lập trình C Khi thiết kế chương trình, cần chú ý đến các chi tiết kỹ thuật, đặc biệt là với ngôn ngữ có kiểu dữ liệu tĩnh như C. Một số lỗi tràn số xảy ra do không nắm rõ phạm vi giá trị của biến, vì vậy khi viết mã, cần phải cẩn thận. Kích thước của kiểu số nguyên (integer) trong C Kích thước của các kiểu ...

Đăng vào ngày 20 tháng 5 lúc 10:56