Monday, April 25, 2011

Định nghĩa Pointer

Trước khi bắt đầu tôi muốn chắc chắn rằng tất cả các bạn newbie phải thực sự tập trung vì phần này sẽ tương đối phức tạp và ngốn nhiều thời gian của các bạn.

Hinh 1: Going on or not?
Đó có phải là điều bạn thường nghe người ta nói về pointer không? Thôi nào, tôi chỉ đùa thôi, hãy quên tất cả những lời vớ vẩn đó đi. Bạn đang xem blog của tôi, một người chúa ghét và sẽ không bao giờ cho phép những định nghĩa phức tạp được phép xuất hiện trên blog này.

Đầu tiên bạn phải hiểu sơ bộ về bộ nhớ, đó là điều bắt buộc vì bạn sẽ không bao giờ hiểu được pointer nếu không nắm cơ bản về nơi nó tồn tại và làm việc.


Everything done? Okie, Let's go!

Tiếp theo chúng ta phải cùng trả lời một câu hỏi lớn: "Pointer ra đời nhằm mục đích gì?", trả lời câu hỏi này giúp bạn hình dung được vai trò quan trọng và có hứng thú hơn để khám phá Pointer, một công cụ mà giang hồ đồn là "khó".

Định nghĩa pointer

Để dễ hình dung hãy liên tưởng đến việc xem video trên youtube, chỉ có một video duy nhất được lưu trữ tại server của youtube nhưng nhiều người tại nhiều nơi khác nhau có thể xem cùng lúc video đó mà không cần quan tâm video đó ở đâu, do ai lưu giữ, tất cả những gì chúng ta cần là một đường Link "trỏ" tới video đó.

Hãy hình dung, variable chính là video tại server còn pointer chính là đường link trỏ vào video đó. Vậy, Pointer đơn giản chỉ là một địa chỉ để truy cập một variable, thông qua pointer lập trình viên có thể truy xuất và gán giá trị cho variable ở bất cứ nơi đâu họ muốn.

Khai báo Pointer

Khai báo pointer giống như khai báo variable và chỉ cần thêm giấu * phía trước tên của nó để đánh giấu nó là "đặc biệt", nó chưa địa chỉ của một varriable khác chứ không chứa data của người dùng:
<type> *<ptr name>;
V D:  int *p_so_nguyen;
Chú ý: Tên của pointer là "p_so_nguyen" chứ không phải là "*p_so_nguyen". Giấu * là một cú pháp bắt buộc của ngôn ngữ để phân biệt giữa pointer và variable.

Tip: Tôi khuyên bạn nên thêm tiền tố p_ trước tên của một pointer, điều đó sẽ khiến chương trình rõ ràng hơn, khi nhìn vào tên bạn có thể phân biệt ngay đâu là variable và đâu là pointer điều này sẽ giúp ích rất nhiều khi bạn viết một chương trình lớn.


Để hiểu hơn về Pointer bạn cần xem hai ứng dụng quan trọng của nó
Cơ bản, đó là tất cả những gì bạn cần biết về pointer, bạn có thể làm được cả đống chuyện với chừng đó kiến thức mà không cần phải tìm hiểu thêm bất cứ điều gì về pointer nữa. Gút lấc ^^!

No comments:

Post a Comment