C memungkinkan Anda membuat situasi di mana beberapa pointer mereferensikan tempat yang sama persis di memori. Anda dapat mendeklarasikan beberapa pointer dan menjadikan semuanya menargetkan variabel yang sama. Ini bukan sekadar kekhasan teoretis. Itu terjadi terus-menerus dalam kode nyata.
Pertimbangkan cuplikan ini:
Di sini, p mengambil alamat i. q melakukan hal yang sama. Kemudian r mengambil nilai p. Karena p menyimpan alamat i, r sekarang juga menunjuk ke i. Operator penugasan menyalin alamat dari sisi kanan ke sisi kiri. Itu tidak menyalin data. Itu menyalin lokasi.
Setelah baris ini dijalankan, i secara efektif mendapatkan alias. Anda sekarang dapat mengakses bilangan bulat i melalui nama aslinya atau melalui salah satu petunjuk.
Variabel i sekarang memiliki empat nama: i, *p, *q, dan *r.
Tidak ada batasan pasti berapa banyak pointer yang dapat menampung alamat yang sama. Anda dapat merantainya sedalam yang Anda butuhkan. Ubah *p, dan *r melihat perubahannya. Mereka semua melihat sel memori yang sama.
Sejumlah penunjuk dapat menunjuk ke alamat yang sama.
Perilaku ini sangat penting dalam cara kerja pointer. Ini bukan kasus khusus. Ini adalah defaultnya. Memahami hal ini membantu Anda menghindari kebingungan saat melakukan debug. Jika Anda melihat nilai yang tidak diharapkan, periksa apakah beberapa penunjuk mengubah lokasi yang sama. Ini bukan sihir. Itu hanya kenangan.


























