
Bài giảng Kỹ thuật lập trình: Chương 7 - Con trỏ, được biên soạn gồm các nội dung chính sau: Tổ chức bộ nhớ; Ứng dụng của con trỏ; Mô hình của con trỏ; Toán tử; Khai báo trỏ; Toán tử; Các phép toán; Con trỏ và mảng; Cấp phát bộ nhớ động;...Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang Chương 07 CON TRỎTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 1 Nội dung Tổ chức bộ nhớ Con trỏ và cấu trúc, Ứng dụng của con trỏ toán tử -> Mô hình của con trỏ Các chủ đề nâng cao Toán tử & với con trỏ Thứ tự đánh giá * Khai báo trỏ và ++, -- Toán tử * Con trỏ và const Các phép toán Con trỏ đến con trỏ Con trỏ và mảng Con trỏ void Cấp phát bộ nhớ độngTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 2 Tổ chức bộ nhớ thực thi Tổ chức bộ nhớ khi chương trình nạp vào để thực thiTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 3 Tổ chức bộ nhớ thực thi Vùng TEXT Chứa mã thực thi của chương trình Vùng này chỉ đọc Có thể dùng chungTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 4 Tổ chức bộ nhớ thực thi Vùng DATA Dữ liệu đã được khởi tạo (initialized) Dữ liệu không được khởi tạo (uninitialzed) gồm: Biến toàn cục Biến tĩnh (static) Hằng chuỗi (Nguồn: http://proprogramming.org/)Trần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 5 Tổ chức bộ nhớ thực thi Vùng HEAP Chứa bộ nhớ xin cấp phát động bởi người lập trình Liên quan đến kiểu dữ liệu con trỏ trong chương này (Nguồn: http://chortle.ccsu.edu/) http://proprogramming.org/)Trần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 6 Tổ chức bộ nhớ thực thi Vùng STACK Chứa các biến khai báo trong chương trình Thông tin các lần gọi hàmTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 7 Ứng dụng của con trỏ Mảng trong C Phải biết trước số lượng phần tử tại thời điểm viết chương trình Do đó, cần phải khai báo một số lượng lớn các ô nhớ để sẵn. Tuy nhiên, tại một thời điểm nào đó, chương trình có thể sẽ sử dụng ít hơn rất nhiều lãng phí Yêu cầu: có thể nào dùng mảng với số lượng phần tử chỉ cần biết lúc chương trình đang chạy? => Dùng con trỏTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 8 Ứng dụng của con trỏ Mảng trong C Khi thêm vào và xóa các phần tử trên mảng, cần phải dịch phải và trái nhiều phần tử tốn nhiều thời gian Yêu cầu: Có cách tổ chức dữ liệu nào giúp các phép quản lý phần tử nói trên nhanh chóng Giải pháp: Sử dụng danh sách liên kết dùng con trỏTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 9 Mô hình của con trỏ Biến a có địa chỉ là 0x1234 FFFF 0x1234 FFFF Biến p là con trỏ chứa địa chỉ của biến aTrần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 10 Toán tử & Dùng để lấy địa chỉ của một biến Ví dụ: int a = 100; printf(%d , a); printf(%p , &a);Trần Quang Kỹ thuật lập trình Chương 06: Con trỏ© 2016 ...