Rumah >pembangunan bahagian belakang >C++ >Mengapa Tidak `padam` Secara Automatik Tetapkan Penunjuk kepada NULL dalam C ?
Mengapa Tidak Padam Secara Automatik Berikan NULL kepada Penunjuk?
Standard bahasa C tidak mewajibkan tetapan automatik nilai penunjuk kepada NULL selepas menggunakan operator padam. Walaupun ini mungkin kelihatan berlawanan dengan intuisi, terdapat beberapa sebab untuk keputusan ini.
Prestasi
Seperti yang dinyatakan dalam soalan, arahan tambahan untuk menetapkan penunjuk kepada NULL berpotensi memberi kesan kepada prestasi operasi pemadaman, terutamanya dalam kod kritikal prestasi.
Const Petunjuk
Satu lagi isu yang berpotensi ialah beberapa petunjuk mungkin diisytiharkan sebagai const. Untuk penunjuk ini, cuba menukar nilainya selepas operasi pemadaman tidak mungkin. Walaupun boleh dikatakan bahawa kes khas boleh dibuat untuk petunjuk sedemikian, piawaian memilih untuk mengekalkan konsistensi dengan tidak mengubah suai nilai penunjuk dalam semua kes.
Argumen Bukan Nilai L
Operator padam boleh menerima argumen bukan nilai, seperti rujukan nilai. Dalam senario ini, nilai penuding tidak boleh diubah suai. Ini menimbulkan had teknikal untuk piawaian untuk memastikan ketekalan dalam tingkah laku untuk semua jenis hujah.
Penjelasan Bjarne Stroustrup
Bjarne Stroustrup, pencipta C , telah menangani perkara ini isu:
Oleh itu, semasa memadam penunjuk dalam C tidak menetapkannya secara automatik kepada NULL, piawaian telah mempertimbangkan pelbagai faktor seperti prestasi, petunjuk const, hujah bukan nilai dan ketekalan untuk mencapai keputusan ini.
Atas ialah kandungan terperinci Mengapa Tidak `padam` Secara Automatik Tetapkan Penunjuk kepada NULL dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!