Carta Perbandingan
Asas Untuk Perbandingan | Penunjuk | Rujukan |
---|---|---|
Asas | Penunjuk ialah alamat memori pemboleh ubah. | Rujukan adalah alias untuk pembolehubah. |
Pulangan | Pembolehubah penunjuk mengembalikan nilai yang terletak di alamat yang disimpan dalam pembolehubah penunjuk yang didahului oleh tanda penunjuk '*'. | Variabel rujukan mengembalikan alamat pembolehubah yang didahului oleh tanda rujukan '&'. |
Pengendali | *, -> | & |
Rujukan Null | Pembolehubah penunjuk boleh merujuk kepada NULL. | Pembolehubah rujukan tidak boleh merujuk kepada NULL. |
Inisialisasi | Penuding yang tidak dikenali boleh dibuat. | Rujukan yang tidak dikenali tidak boleh dibuat. |
Masa Inisialisasi | Pembolehubah penunjuk boleh dimulakan pada setiap masa dalam program. | Pembolehubah rujukan hanya boleh dimulakan pada masa penciptaannya. |
Reinitialization | Pembolehubah penunjuk boleh dikukuhkan semula sebanyak yang diperlukan. | Pembolehubah rujukan tidak boleh dilancarkan lagi dalam program ini. |
Definisi Penunjuk
"Penunjuk" adalah pemboleh ubah yang memegang lokasi memori pembolehubah lain. Pengendali yang digunakan oleh pembolehubah penunjuk adalah * dan ->. Pengisytiharan pembolehubah penunjuk mengandungi jenis data asas diikuti tanda '*' dan nama pemboleh ubah.
ketik * var_name;
Marilah kita memahami penunjuk dengan bantuan contoh.
int a = 4; int * ptr = & a; cout <Di sini, kita mempunyai pembolehubah integer a dan, ptr ubah pointer yang menyimpan alamat pembolehubah a.
Penunjuk aritmetik
Pembolehubah penunjuk boleh dikendalikan dengan dua operator aritmetik yang "tambahan" dan "penolakan". Tambahan itu dirujuk sebagai "kenaikan", dan penolakan disebut sebagai "pengurangan". Sebagai pemboleh ubah penunjuk ditambah, ia menunjukkan kepada lokasi memori pembolehubah seterusnya jenis asasnya. Sebagai pembolehubah penunjuk diturunkan, ia menunjukkan kepada lokasi memori pemboleh ubah terdahulu jenis pangkalannya. Oleh itu, array boleh diakses dengan cekap oleh pembolehubah penunjuk.
Penyelewengan Pelbagai
Petunjuk menunjuk kepada pembolehubah penunjuk lain yang menunjuk kepada nilai sasaran. Penunjuk jenis ini sentiasa diasaskan dengan alamat pembolehubah penunjuk lain. Perisytiharan penunjuk kepada penunjuk adalah seperti berikut.
taip ** var_name;Mari kita teliti dengan contohnya.
int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout <Penunjuk fungsi
Seperti yang kita tahu bahawa fungsi bukan pembolehubah, masih ia mempunyai lokasi ingatan, yang boleh diberikan kepada pembolehubah penunjuk. Sebaik sahaja pointer menunjuk pada fungsi, maka fungsi itu boleh dipanggil dengan penunjuk fungsi tersebut.
Perkara-perkara penting yang perlu diingat mengenai penunjuk itu.
- Pembolehubah penunjuk boleh dibuat tanpa inisialisasinya, dan ia dapat diinisikan di mana saja di dalam program.
- Pembolehubah penunjuk boleh dikembalikkan kepada pemboleh ubah yang lain.
- Pembolehubah penunjuk boleh merujuk kepada NULL.
Definisi Rujukan
Pembolehubah rujukan digunakan untuk merujuk kepada pemboleh ubah yang diberikan kepada pembolehubah rujukan tersebut. Pengendali yang digunakan oleh pembolehubah rujukan adalah '&'. Pengisytiharan pembolehubah rujukan mengandungi jenis asas diikuti oleh tanda '&' dan kemudian nama berubah.
taip & refer_var_name = nama var_;Di sini, jenis adalah jenis data, operator & mengesahkan bahawa ia adalah pembolehubah rujukan. Nama refer_var_name ialah nama pembolehubah rujukan. Nama var_name ialah nama pembolehubah, yang kami mahu pembolehubah rujukan merujuk.
Marilah kita memahami pembolehubah rujukan dengan bantuan contoh.
int a = 4; int & b = a; // b merujuk kepada ab = 6; // sekarang a = 6Di sini, pembolehubah jenis int diberikan nilai 4. Pembolehubah rujukan diberikan pemboleh ubah a, iaitu b ialah alias a. Sekarang, apabila kita memberikan nilai lain kepada b, kita mengubah suai nilai a. Oleh itu, boleh dikatakan bahawa perubahan yang dilakukan kepada pembolehubah rujukan juga akan berlaku dalam pembolehubah yang dirujuk oleh pemboleh ubah tersebut.
Titik yang paling penting ialah pembolehubah rujukan mestilah dimulakan pada masa penciptaannya. Sebaik sahaja pembolehubah rujukan diasaskan dengan pembolehubah, ia tidak boleh dikukuhkan semula untuk merujuk pembolehubah lain. Pada masa yang anda tetapkan nilai kepada pembolehubah rujukan, anda memberikan nilai itu kepada pemboleh ubah yang boleh digunakan oleh pembolehubah rujukan. Pembolehubah rujukan tidak boleh merujuk kepada NULL. Aritmetik tidak boleh dilakukan pada pembolehubah rujukan.
Pembolehubah rujukan boleh digunakan dalam tiga cara:
- Sebagai fungsi nilai pulangan.
- Sebagai parameter fungsi.
- Sebagai rujukan sendiri.
Perbezaan Utama Antara Petunjuk dan Rujukan
- Rujukan adalah seperti mencipta nama lain untuk merujuk pemboleh ubah supaya ia boleh dirujuk dengan nama yang berlainan. Sebaliknya, penunjuk hanyalah alamat memori pembolehubah.
- Pembolehubah penunjuk jika sebelumnya '*' mengembalikan nilai pemboleh ubah yang alamatnya disimpan dalam pointer varaible. Pembolehubah rujukan apabila diawali dengan '&' mengembalikan alamat pemboleh ubah tersebut.
- Operator penunjuk adalah * dan -> sedangkan, pengendali rujukan adalah &.
- Pembolehubah penunjuk jika tidak membawa sebarang alamat pembolehubah yang ditunjukkan kepada null. Sebaliknya, pembolehubah rujukan tidak boleh merujuk kepada Null.
- Anda sentiasa boleh membuat pembolehubah penunjuk unit, tetapi kami mencipta rujukan apabila kami memerlukan alias beberapa pembolehubah supaya anda tidak boleh membuat penomboran unitialisasi.
- Anda boleh menghidupkan kembali penunjuk tetapi sebaik sahaja anda memulakan isfernce anda tidak boleh mengembalikannya semula.
- Anda boleh mencipta penunjuk kosong dan memulakannya pada bila-bila masa tetapi anda perlu memulakan penambahan hanya apabila anda membuat refernce.
Catatan:
Java tidak menyokong petunjuk.
Kesimpulannya
Penunjuk dan rujukan kedua-duanya digunakan untuk menunjuk atau merujuk pemboleh ubah yang lain. Tetapi kedua-duanya berbeza dalam penggunaan dan pelaksanaannya.