C memungkinkan Anda membuat kemacetan lalu lintas yang semuanya mengarah ke lokasi memori yang sama. Ini bukan bug. Itu sebuah fitur. Anda dapat mendeklarasikan pointer sebanyak yang Anda inginkan dan meminta semuanya mereferensikan variabel yang sama persis.
Pertimbangkan skenario ini. Anda memiliki bilangan bulat i. Anda juga memiliki tiga petunjuk: p, q, dan r. Anda menyetel p untuk menunjuk ke i. Kemudian Anda mengatur q untuk menunjuk ke i. Terakhir, Anda menyetel r untuk menunjuk ke tempat p menunjuk.
Di blok ini, r menunjuk ke hal yang sama dengan p. Yaitu i. Operator penugasan menyalin alamat dari sisi kanan ke sisi kiri. Itu tidak menyalin nilainya. Itu menyalin lokasi.
Setelah eksekusi, i memiliki empat nama. i itu sendiri. *p. *q. Dan *r.
Tidak ada batasan berapa banyak pointer yang dapat menampung satu alamat. Anda bisa merantainya. Anda dapat menyalinnya. Anda bisa menunjukkan semuanya sekaligus.
Mengapa ini penting? Ini penting karena mengubah cara Anda berpikir tentang ingatan. Pointer hanyalah label untuk suatu lokasi. Jika beberapa label menunjuk ke tempat yang sama, semuanya akan melihat data yang sama. Ubah data melalui *p. *q juga melihatnya.
Fleksibilitas ini sangat kuat. Itu juga berbahaya. Satu kesalahan ketik dalam tugas penunjuk dan Anda menimpa data yang tidak ingin Anda sentuh. Namun untuk saat ini, pahami saja bahwa petunjuk itu fleksibel. Mereka tidak memiliki ingatan. Mereka hanya menunjuk ke sana. Dan banyak petunjuk dapat menunjuk ke tempat yang sama tanpa berdebat.




















