Perbedaan Antara Pointer dan Referensi | Pointer vs Reference

Anonim

Perbedaan Kunci - Pointer vs Referensi

Sebelum membahas perbedaan antara pointer dan referensi, pertama mari kita lihat arti kedua istilah ini secara singkat. Dalam sebuah program, data menempati memori. Lokasi memori yang tepat dimana data ditempatkan pada waktu eksekusi harus diketahui untuk mengaksesnya. Variabel pointer dan digunakan untuk mengakses data ini dan memanipulasi alamat memori yang mereka gunakan. Artinya, kedua pointer dan referensi dapat digunakan untuk merujuk ke objek secara tidak langsung. Mereka pada dasarnya menyimpan alamat memori sebagai nilai mereka. Perbedaan antara pointer dan referensi adalah bahwa pointer adalah variabel yang menyimpan alamat lokasi memori dari variabel lain sedangkan referensi adalah variabel yang merujuk ke variabel lain Dua mekanisme, pointer dan referensi, memiliki sintaks dan penggunaan yang berbeda . Apa itu Pointer?

Penunjuk adalah

objek bahasa pemrograman yang menyimpan alamat memori dari nilai

dalam memori komputasi. Dalam sintaks C + +; int i = 5;

int * ptr = & i;

Baris pertama mendefinisikan sebuah variabel yang diinisialisasi dengan nilai 5. Baris kedua mendefinisikan sebuah pointer ke alamat memori variabel. Di sini, 'ptr' dideklarasikan sebagai objek tipe 'pointer to int' yang nilai awalnya adalah alamat objek i. Intinya, ptr menunjukkan poin ke i dengan menyimpan alamat memori.

Mendapatkan nilai yang tersimpan di lokasi memori disebut

dereferencing

. Operator * digunakan untuk menentukan pointer. Setelah deklarasi selesai, ekspresi tidak langsung * ptr dereferences ptr untuk merujuk ke i. Untuk mengubah nilai i, setelah penugasan dapat digunakan; * ptr = 20;

Pointer mungkin ditugaskan untuk merujuk ke objek yang berbeda juga.

A

null pointer

adalah jenis pointer khusus. Sebuah pointer null sering dilambangkan dengan 0 atau null dan tidak menunjuk apa-apa. Ini adalah praktik yang baik untuk menggunakan pointer nol dalam kasus tidak memiliki alamat yang tepat untuk ditugaskan ke pointer. Tugas ini dapat digunakan dalam operasi dan kondisi logis. Pointer dapat digunakan untuk menyimpan dan mengelola alamat memori yang dialokasikan secara dinamis

. Implementasi dan pengendalian struktur data seperti tumpukan, antrian, dan daftar bisa dibuat efisien dengan penggunaan petunjuk. Misalnya, antrian mungkin memiliki dua petunjuk; kepala pointer dan penunjuk ekorPointer juga dapat digunakan untuk melewatkan variabel menurut alamat mereka, yang memungkinkan nilai diubah. Secara langsung memanipulasi perangkat memori atau memori yang dipetakan juga dapat ditangani dengan menggunakan petunjuk. Pointer memungkinkan akses terlindungi dan terlindungi dari memori yang dialamatkan. Oleh karena itu, tindakan pencegahan yang diperlukan harus dilakukan untuk memastikan bahwa isi dari sebuah pointer valid. Jika tidak, dereferencing pointer dengan alamat memori yang tidak benar dapat menyebabkan program mogok. Pointer didukung dalam bahasa seperti C, C ++, Pascal dan banyak bahasa assembly.

Pointer

a

menunjuk ke alamat memori yang terkait dengan variabel b. Apa itu Referensi? Referensi hanyalah sebuah pengenal alternatif

untuk sebuah nilai yang tersimpan dalam memori

. Ini memungkinkan sebuah program untuk secara tidak langsung mengakses datum tertentu. Dalam sintaks C + +; int i = 5;

int & ref =

i;

Baris pertama mendefinisikan sebuah variabel yang diinisialisasi dengan nilai 5. Baris kedua menyatakan 'ref' sebagai objek tipe 'reference to int' yang mengacu pada i. Sebuah referensi berbeda dari data itu sendiri mengingat bahwa referensi diimplementasikan sebagai alamat fisik datum tertentu yang tersimpan dalam memori. Setelah didefinisikan, referensi tidak dapat dipindahtangankan nilai baru. Sebuah referensi selalu mengacu pada objek yang diinisialisasinya. Dalam tugas berikut, ref masih mengacu pada saya, tapi nilainya sekarang 20.

ref = 20;

Menurut contoh di atas, referensi dereferencing tidak memerlukan operator.

Referensi dapat digunakan bila sebuah variabel selalu mengacu pada suatu objek. Ini karena, tidak seperti pointer, referensi tidak bisa null dan harus selalu ditugaskan pada inisialisasi. Karena referensi harus selalu mengacu pada beberapa objek, membuat variabel seperti itu memastikan bahwa program akan bekerja secara efisien dan benar. Mengingat bahwa, tidak ada referensi null, validitas variabel referensi tidak harus diuji.

Variabel referensi dapat

digunakan untuk secara efisien mengirimkan data besar sebagai argumen pada prosedur

. Referensi juga digunakan dalam berbagi data besar antara area kode yang berbeda karena setiap kode menyimpan referensi ke data. Bahasa pemrograman seperti C ++, Java, Python, Perl, PHP, Ruby, dll. Referensi pendukung. Apa perbedaan antara Pointer dan Referensi?

Penunjuk Pointer dan Referensi

Pointer:

Penunjuk adalah alamat memori dari objek yang tersimpan dalam memori komputasi.

Referensi: Referensi adalah pengenal alternatif atau alias untuk sebuah objek.

Karakteristik Pointer dan Referensi Deklarasi

Pointer:

Pointer dideklarasikan dengan operator *.

Referensi: Referensi dideklarasikan dengan & operator.

Dereferencing Pointer:

Sebuah variabel pointer mengharuskan operator * untuk dereferenced.

Referensi: Variabel referensi mengharuskan tidak ada operator yang diberi dereferensi.

Inisialisasi Pointer:

Pointer dapat diinisialisasi ke nol.Variabel seperti itu disebut pointer nol.

Referensi: Referensi tidak dapat diinisialisasi ke nol. Tidak ada yang namanya referensi nol. Referensi harus selalu mengacu pada objek.

Reassignments Pointer:

Variabel penunjuk dapat dipindahkan untuk merujuk ke objek yang berbeda.

Referensi: Variabel referensi tidak dapat dipindahkan. Ini selalu mengacu pada objek yang diinisialisasinya.

Penggunaan Pointer:

Variabel pointer harus digunakan bila kemungkinan tidak mengacu pada apa pun atau bila diperlukan untuk merujuk pada hal yang berbeda pada waktu yang berbeda.

Referensi: Variabel referensi harus digunakan bila akan selalu ada objek yang harus merujuk dan kapan tidak diperlukan untuk menggunakan variabel referensi tersebut untuk merujuk pada hal lain selain objek itu.

Penerapan Penggunaan Pointer:

Pointer variabel dapat digunakan untuk menerapkan algoritma dan struktur data.

Referensi: Variabel referensi dapat digunakan pada parameter fungsi, dan tipe pengulangan menentukan antarmuka yang berguna.

Bahasa yang digunakan: Pointer:

Bahasa pemrograman seperti C, C ++, Pascal dan banyak bahasa assembly mendukung petunjuk.

Referensi: Bahasa pemrograman seperti C ++, Java, Python, Perl, PHP, Ruby, dll. Referensi pendukung.

Gambar Courtesy: "Pointer" oleh berkas ini dibuat oleh Pengguna: SvenTranslation. Pekerjaan sendiri. Gambar vektor ini dibuat dengan Inkscape. (CC BY-SA 3. 0) melalui Commons -