Diberi dua penunjuk a dan b, menentukan sama ada ia merujuk objek yang sama ialah keperluan pengaturcaraan biasa. Pendekatan intuitif adalah menggunakan operator kesamarataan (==). Artikel ini meneroka kesahihan pendekatan ini dan memberikan cerapan tambahan daripada piawaian C.
Menurut piawaian C 11, penunjuk jenis yang sama boleh dibandingkan untuk kesaksamaan, dengan peraturan khusus:
Ini bermakna a == b berlaku jika a dan b menunjuk kepada yang sama objek atau mempunyai nilai nol.
Pengendali perhubungan (<, >, <=, >=) mempunyai set peraturan unik untuk perbandingan penuding :
Untuk kes khusus anda, jika kedua-dua a dan b ditetapkan dengan sesuatu , a == b akan menunjukkan jika mereka menunjuk ke objek yang sama. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa perbandingan ini mungkin menghasilkan hasil yang tidak ditentukan jika sesuatu merujuk kepada objek berbeza yang tidak berkaitan (cth., pembolehubah dalam fungsi yang berbeza atau tatasusunan dalam skop yang berbeza).
Pustaka standard C menyediakan alatan tambahan untuk membandingkan penunjuk:
Menggunakan operator kesaksamaan == untuk membandingkan penunjuk boleh menjadi teknik yang berguna untuk menentukan identiti objek, tetapi penting untuk menjadi mengambil kira potensi kaveat dan had yang dinyatakan dalam piawaian C. Dalam kes di mana perbandingan menghasilkan keadaan yang tidak ditentukan, pendekatan alternatif, seperti menjejak perhubungan objek secara manual atau menggunakan fungsi perbandingan tersuai, mungkin diperlukan.
Atas ialah kandungan terperinci Sejauh manakah Kebolehpercayaan Menggunakan `==` untuk Membandingkan Penunjuk untuk Identiti Objek dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!