Grafik perbandingan
Dasar untuk perbandingan | Pointer | Referensi |
---|---|---|
Dasar | Pointer adalah alamat memori variabel. | Referensi adalah alias untuk suatu variabel. |
Kembali | Variabel pointer mengembalikan nilai yang terletak di alamat yang disimpan dalam variabel pointer yang didahului oleh tanda pointer '*'. | Variabel referensi mengembalikan alamat variabel yang didahului oleh tanda referensi '&'. |
Operator | *, -> | & |
Referensi Null | Variabel pointer dapat merujuk ke NULL. | Variabel referensi tidak pernah bisa merujuk ke NULL. |
Inisialisasi | Pointer yang tidak diinisialisasi dapat dibuat. | Referensi yang tidak diinisialisasi tidak pernah dapat dibuat. |
Waktu Inisialisasi | Variabel pointer dapat diinisialisasi pada setiap titik waktu dalam program. | Variabel referensi hanya dapat diinisialisasi pada saat pembuatannya. |
Inisialisasi ulang | Variabel pointer dapat diinisialisasi ulang sebanyak yang diperlukan. | Variabel referensi tidak pernah dapat diinisialisasi ulang dalam program. |
Definisi Pointer
"Pointer" adalah variabel yang menyimpan lokasi memori variabel lain. Operator yang digunakan oleh variabel pointer adalah * dan ->. Deklarasi variabel pointer berisi tipe data dasar diikuti oleh tanda '*' dan nama variabel.
ketik * var_name;
Mari kita pahami pointer dengan bantuan contoh.
int a = 4; int * ptr = & a; Cout <Di sini, kita memiliki variabel integer a dan, ptr variabel pointer yang menyimpan alamat variabel a.
Aritmatika Pointer
Variabel pointer dapat dioperasikan dengan dua operator aritmatika yang "penambahan" dan "pengurangan". Penambahan tersebut disebut "increment", dan pengurangannya disebut sebagai "decrement". Ketika variabel pointer bertambah, itu menunjuk ke lokasi memori dari variabel berikutnya dari tipe dasarnya. Ketika variabel pointer dikurangi, itu menunjuk ke lokasi memori dari variabel sebelumnya dari tipe dasarnya. Oleh karena itu, sebuah array dapat diakses secara efisien oleh variabel pointer.
Multiple Indirection
Pointer menunjuk ke variabel pointer lain yang menunjuk ke nilai target. Pointer semacam ini selalu diinisialisasi dengan alamat variabel pointer lain. Deklarasi pointer ke pointer adalah sebagai berikut.
ketik ** var_name;Mari kita pelajari dengan sebuah contoh.
int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; Cout <Pointer fungsi
Seperti yang kita ketahui bahwa suatu fungsi bukan variabel, masih memiliki lokasi memori, yang dapat ditugaskan ke variabel pointer. Setelah pointer menunjuk ke suatu fungsi, maka fungsi tersebut bisa dipanggil dengan fungsi pointer itu.
Poin penting yang perlu diingat tentang pointer.
- Variabel pointer dapat dibuat tanpa inisialisasi, dan dapat diinisialisasi di mana saja dalam program.
- Variabel pointer dapat diinisialisasi ulang ke variabel lain.
- Variabel pointer dapat merujuk ke NULL.
Definisi Referensi
Variabel referensi digunakan untuk merujuk pada variabel yang ditugaskan ke variabel referensi itu. Operator yang digunakan oleh variabel referensi adalah '&'. Deklarasi variabel referensi berisi tipe dasar diikuti dengan tanda '&' dan kemudian nama variabel.
ketik & refer_var_name = var_ name;Di sini, jenisnya adalah tipe data, operator & mengonfirmasi bahwa itu adalah variabel referensi. Refer_var_name adalah nama variabel referensi. The var_name adalah nama variabel, yang kita inginkan untuk referensi variabel.
Mari kita memahami variabel referensi dengan bantuan contoh.
int a = 4; int & b = a; // b merujuk ke ab = 6; // sekarang a = 6Di sini, variabel tipe int diberi nilai 4. Variabel referensi diberikan variabel a, yaitu b adalah alias dari a. Sekarang, ketika kita menetapkan nilai lain ke b, kita memodifikasi nilai a. Oleh karena itu, dapat dikatakan bahwa perubahan yang dilakukan pada variabel referensi juga akan terjadi pada variabel yang dirujuk oleh variabel referensi tersebut.
Poin yang paling penting adalah bahwa variabel referensi harus diinisialisasi pada saat pembuatannya. Setelah variabel referensi diinisialisasi dengan variabel, tidak dapat diinisialisasi ulang untuk merujuk variabel lain. Saat Anda menetapkan nilai ke variabel referensi, Anda menetapkan nilai itu ke variabel yang ditunjuk oleh variabel referensi. Variabel referensi tidak pernah bisa merujuk ke NULL. Aritmatika tidak dapat dilakukan pada variabel referensi.
Variabel referensi dapat digunakan dalam tiga cara:
- Sebagai nilai pengembalian fungsi.
- Sebagai parameter fungsi.
- Sebagai referensi yang berdiri sendiri.
Perbedaan Kunci Antara Pointer dan Referensi
- Referensi seperti membuat nama lain untuk merujuk variabel sehingga dapat dirujuk dengan nama yang berbeda. Di sisi lain, pointer hanyalah alamat memori dari suatu variabel.
- Variabel pointer jika diawali dengan '*' mengembalikan nilai variabel yang alamatnya disimpan dalam pointer yang layak. Variabel referensi ketika diawali oleh '&' mengembalikan alamat variabel itu.
- Operator pointer adalah * dan -> sedangkan, operator referensi adalah &.
- Variabel penunjuk jika tidak membawa alamat variabel apa pun yang ditunjukkannya menjadi nol. Di sisi lain, variabel referensi tidak pernah bisa merujuk ke Null.
- Anda selalu dapat membuat variabel pointer unitialized, tetapi kami membuat referensi ketika kami membutuhkan alias dari beberapa variabel sehingga Anda tidak pernah dapat membuat referensi unitialize.
- Anda dapat menginisialisasi ulang pointer tetapi setelah Anda menginisialisasi, Anda tidak dapat menginisialisasi ulang lagi.
- Anda dapat membuat pointer kosong dan menginisialisasi kapan saja tetapi Anda harus menginisialisasi referensi ketika Anda membuat referensi.
catatan:
Java tidak mendukung pointer.
Kesimpulan
Pointer dan referensi keduanya digunakan untuk menunjuk atau merujuk variabel lain. Namun keduanya berbeda dalam penggunaan dan implementasinya.