C mengizinkan satu lokasi memori memiliki banyak alias. Anda dapat mendeklarasikan beberapa pointer dan meminta semuanya mereferensikan variabel yang sama. Ini bukan hanya kekhasan bahasanya. Ini adalah fitur mendasar yang mengubah cara Anda mengelola memori dan akses data.
Pertimbangkan skenario ini. Anda memerlukan beberapa pegangan untuk variabel integer yang sama. Anda dapat mendeklarasikan semuanya dan menghubungkannya secara instan.
Di blok ini, p, q, dan r semuanya merupakan pointer bilangan bulat. Mereka semua menunjuk ke i. Penetapan r = p tidak menyalin nilai i. Ini menyalin alamat yang disimpan di p. Karena p menyimpan alamat i, r sekarang juga menyimpan alamat i.
Satu Variabel, Banyak Nama
Setelah eksekusi, ada satu variabel integer i di memori. Namun ada empat cara untuk merujuk pada data persis tersebut.
i: Nama variabel asli.*p: Nilai pada alamat dip.*q: Nilai pada alamat diq.*r: Nilai pada alamat dir.
Mereka identik. Ubah i. *p berubah. Ubah *q. i berubah. Datanya tinggal di satu alamat. Petunjuknya hanyalah label.
Tidak ada batasan pasti berapa banyak pointer yang dapat menyimpan alamat yang sama. Anda dapat merantainya tanpa batas waktu. a = &i; b = sebuah; c = b; d = c; bekerja dengan cara yang sama. Setiap tugas menyalin nilai penunjuk. Itu tidak membuat salinan data baru.
“Sejumlah penunjuk dapat menunjuk ke alamat yang sama.”
Kemampuan ini sangat berguna untuk meneruskan referensi seputar fungsi atau membangun struktur yang terhubung. Itu membuat penggunaan memori Anda tetap ketat. Hal ini juga menimbulkan risiko. Jika Anda mereferensikan salah satu petunjuk ini, Anda menyentuh byte dasar yang sama. Kesalahan dalam satu alias berimbas pada semuanya. Namun bila digunakan dengan benar, fitur ini merupakan praktik standar C.



























