Trong các nghiên cứu của riêng bạn (một mình hoặc cho một lớp học) bạn đã có một khoảnh khắc "ah ha" khi cuối cùng, bạn thực sự hiểu con trỏ? Bạn có một lời giải thích bạn sử dụng cho các lập trình viên mới bắt đầu có vẻ đặc biệt hiệu quả?
Ví dụ, khi người mới bắt đầu lần đầu tiên gặp con trỏ trong C, họ có thể chỉ cần thêm &
s và *
s cho đến khi nó biên dịch (như bản thân tôi đã từng làm). Có thể đó là một bức tranh, hoặc một ví dụ thực sự có động lực, đã khiến con trỏ "nhấp chuột" cho bạn hoặc học sinh của bạn. Nó là gì và bạn đã thử những gì trước đây dường như không hoạt động? Có bất kỳ chủ đề tiên quyết (ví dụ: cấu trúc, hoặc mảng)?
Nói cách khác, điều gì là cần thiết để hiểu ý nghĩa của &
s và *
, khi bạn có thể sử dụng chúng một cách tự tin? Học cú pháp và thuật ngữ hoặc các trường hợp sử dụng là không đủ, tại một số điểm, ý tưởng cần phải được tiếp thu.
Cập nhật: Tôi thực sự thích các câu trả lời cho đến nay; hãy giữ cho họ đến Có rất nhiều quan điểm tuyệt vời ở đây, nhưng tôi nghĩ nhiều điều là những lời giải thích / khẩu hiệu tốt cho chính chúng ta sau khi chúng ta tiếp thu khái niệm này. Tôi đang tìm kiếm bối cảnh và hoàn cảnh chi tiết khi nó chợt nhận ra bạn.
Ví dụ:
Tôi chỉ hiểu phần nào về con trỏ cú pháp trong C. Tôi nghe hai người bạn của tôi giải thích về con trỏ cho một người bạn khác, người hỏi tại sao một con
struct
được truyền bằng một con trỏ. Người bạn đầu tiên nói về việc cần phải tham khảo và sửa đổi như thế nào, nhưng đó chỉ là một nhận xét ngắn từ người bạn khác, nơi nó đánh tôi: "Nó cũng hiệu quả hơn." Vượt qua 4 byte thay vì 16 byte là sự thay đổi khái niệm cuối cùng tôi cần.