Con trỏ là gì?
Thuộc phần Logic và luồng điều khiển trong hành trình C của Coddy. Bài học 1 trên 63.
Hãy hình dung bộ nhớ máy tính của bạn như một tòa nhà chung cư khổng lồ với hàng nghìn phòng. Mỗi phòng có một địa chỉ riêng và có thể lưu trữ một mẩu dữ liệu. Khi tạo một biến trong C, biến đó sẽ được gán cho một trong những phòng này.
Con trỏ là một kiểu biến đặc biệt, không lưu dữ liệu thông thường như số hoặc ký tự. Thay vào đó, nó lưu địa chỉ vị trí bộ nhớ của một biến khác. Hãy hình dung con trỏ như số căn hộ của ai đó được ghi trên một mảnh giấy: mảnh giấy không chứa người đó, nhưng cho bạn biết chính xác nơi tìm họ.
int age = 25; // Lệnh này tạo một biến (variable) 'age' trong bộ nhớ
int *ptr; // Lệnh này tạo một con trỏ (pointer) có thể lưu địa chỉTrong ví dụ này, age được lưu ở một địa chỉ bộ nhớ nào đó (giả sử là phòng 1004), còn ptr là một biến con trỏ có thể lưu địa chỉ 1004 để “trỏ đến” biến age.
Con trỏ là một trong những tính năng mạnh mẽ nhất của C vì chúng cho phép bạn làm việc trực tiếp với địa chỉ bộ nhớ, giúp chương trình hiệu quả hơn và hỗ trợ các kỹ thuật nâng cao như cấp phát bộ nhớ động và xây dựng cấu trúc dữ liệu phức tạp.
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng điều khiển
1Nền tảng về con trỏ
Con trỏ là gì?Khai báo con trỏToán tử lấy địa chỉ (&)Toán tử giải tham chiếu (*)Con trỏ NULLÔn tập: kiến thức cơ bản về con trỏ4Dự án: Công cụ xử lý văn bản đơn giản
Tổng quan dự ánĐếm ký tự2Con trỏ và mảng
Tên mảng dưới dạng con trỏPhần tử mảng và con trỏPhép toán con trỏSo sánh con trỏÔn tập: duyệt mảng bằng con trỏ5Con trỏ và hàm
Truyền theo giá trịTruyền con trỏ vào hàmSửa đổi biến qua con trỏVí dụ kinh điển: hoán đổiTruyền mảng vào hàmÔn tập: đối số con trỏ hàm3Mảng ký tự và chuỗi
Chuỗi dưới dạng mảng charKý tự kết thúc nullNhập chuỗi bằng scanfDùng strlen()Dùng strcpy()Dùng strcat()Dùng strcmp()Ôn tập: các hàm xử lý chuỗi cơ bản6Quản lý bộ nhớ
Bộ nhớ ngăn xếp và bộ nhớ heapCấp phát động với malloc()Dùng sizeof() để cấp phátKiểm tra lỗi cấp phátGiải phóng bộ nhớ với free()Cấp phát với calloc()Ôn tập: Mảng động9Dự án: Nhập thông tin liên hệ đơn giản
Định nghĩa struct ContactHàm tạo liên hệTự luyện tập: Trình biên dịch C online