Monday, April 25, 2011

Tại sao ngôn ngữ lập trình C lại có con trỏ?

Trước khi con trỏ ra đời, một chương trình C chỉ được phép sử dụng một lượng bộ nhớ cố định được cấp phát ngay từ đầu (Compiler time), trong khi chương trình đang làm việc (Run time) không có cách nào để thay đổi dung lượng bộ nhớ chương trình được phép sử dụng.
Vì vậy, ngay từ đầu, để đảm bảo chương trình luôn làm việc đúng lập trình viên phải cấp phát một lượng bộ nhớ tối đa mà chương trình có thể sử dụng, vấn đề là không phải lúc nào chương trình cũng sử dụng hết dung lượng tối đa đó, dẫn đến lãng phí và không hiệu quả trong sử dụng bộ nhớ.

Thực tế, cách thức tổ chức bộ nhớ của máy tính lại hoàn toàn cho phép lập trình viên chỉ cần cấp phát một dung lượng tối thiểu ngay từ đầu, đủ để chương trình hoạt động đúng, sau đó, trong khi chương trình đang làm việc nếu cần ta có thể cấp phát thêm hoặc giải phóng bớt dung lượng bộ nhớ phục vụ cho chương trình. 

Con trỏ (Pointer) chính là công cụ ra đời để tận dụng thực tế đó, con trỏ ra đời có ý nghĩa rất lớn trong việc sử dụng bộ nhớ, giúp chương trình gọn hơn, nhanh hơn tăng cường sức mạnh của toàn hệ thống.

No comments:

Post a Comment