Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Membandingkan Penunjuk untuk Kesaksamaan dalam C?

Bagaimanakah Saya Membandingkan Penunjuk untuk Kesaksamaan dalam C?

Barbara Streisand
Barbara Streisandasal
2024-11-19 19:40:03309semak imbas

How Do I Compare Pointers for Equality in C  ?

Menentukan Kesamaan Objek Antara Penunjuk

Dalam C , perbandingan dua penunjuk menggunakan operator kesamaan (==) bergantung pada objek masing-masing .

Petunjuk kepada Objek

Untuk penunjuk (a dan b) yang menunjuk ke objek dari jenis yang sama, operasi kesamaan (a == b) kembali benar dalam kes berikut:

  • Kedua-dua penunjuk adalah batal
  • Kedua-dua penunjuk menunjuk ke objek yang sama dalam ingatan
  • Kedua-dua penunjuk mewakili yang sama alamat

Penunjuk ke Fungsi

Jika penunjuk menunjuk ke fungsi jenis yang sama, perbandingan juga akan kembali benar jika menunjuk ke fungsi yang sama.

Penunjuk kepada Elemen Tatasusunan

Apabila penunjuk menunjuk kepada elemen dalam tatasusunan, perbandingan akan kembali benar jika ia merujuk kepada elemen yang sama atau melepasi elemen terakhir tatasusunan yang sama.

Perbandingan Tidak Ditentukan

Dalam senario tertentu, kelakuan pengendali kesaksamaan untuk penunjuk tidak ditentukan. Ini termasuk:

  • Perbandingan penunjuk kepada ahli objek dari tahap akses yang berbeza
  • Perbandingan penunjuk kepada ahli data bukan statik objek kesatuan
  • Perbandingan penunjuk kepada pembolehubah bukan tempatan dalam fungsi berbeza

Perpustakaan Standard Sambungan

Perpustakaan Standard C menyediakan std::less<> templat, yang menawarkan pesanan global untuk sebarang jenis penunjuk, tanpa mengira tingkah laku perbandingan yang ditakrifkan oleh pengendali terbina dalam. Ini membolehkan perbandingan konsisten penunjuk kosong.

Atas ialah kandungan terperinci Bagaimanakah Saya Membandingkan Penunjuk untuk Kesaksamaan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn