Bài giảng Kỹ thuật lập trình: Con trỏ cung cấp cho người học các kiến thức: Con trỏ, các phép toán trên con trỏ, con trỏ và mảng một chiều, cấp phát vùng nhớ động, con trỏ cấp 2, con trỏ hàm,... Mời các bạn cùng tham khảo.
Con Trỏ (Pointer) Trịnh Tấn Đạt Khoa CNTT - Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/ Nội dung ▪ Biến tĩnh vs Biến động ▪ Con trỏ ▪ Các phép toán trỏ ▪ Con trỏ mảng chiều ▪ Cấp phát vùng nhớ động ▪ Con trỏ cấp ▪ Con trỏ mảng nhiều chiều ▪ Mảng trỏ ▪ Con trỏ hằng, void ▪ Con trỏ hàm (option) Biến tĩnh vs Biến động ▪ Một số hạn chế gặp phải sử dụng biến tĩnh: o Cấp phát ô nhớ dư, gây lãng phí nhớ o Cấp phát nhớ thiếu, chương trình thực thi bị lỗi ▪ Biến động: o Khi chạy chương trình, kích thước biến, vùng nhớ địa vùng nhớ cấp phát cho biến thay đổi o Sau sử dụng xong giải phóng để tiết kiệm chỗ nhớ ▪ Variable: Biến ô nhớ đơn lẻ vùng nhớ hệ điều hành cấp phát cho chương trình C++ nhằm để lưu trữ giá trị vào bên vùng nhớ Ví dụ: int m; // vùng nhớ có kích thước bytes cấp phát Virtual memory & Physical memory ❖ Virtual memory & Physical memory ▪ Chúng ta trỏ đến vùng nhớ ảo (virtual memory) máy tính, việc truy xuất đến nhớ vật lý (physical memory) từ nhớ ảo phải thực thiết bị phần cứng có tên Memory management unit (MMU) chương trình định vị địa nhớ gọi Virtual address space Variable address & address-of operator ▪ Địa biến (variable address) mà nhìn thấy thật giá trị đánh số thứ tự đặt Virtual memory ▪ Để lấy địa ảo biến chương trình, sử dụng toán tử lấy địa (address-of operator) ‘&’ đặt trước tên biến Ví dụ: int x = 5; std::cout