Rumah >pembangunan bahagian belakang >C++ >Mengapa Tidak `padam` Secara Automatik Tetapkan Penunjuk kepada NULL dalam C ?

Mengapa Tidak `padam` Secara Automatik Tetapkan Penunjuk kepada NULL dalam C ?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 22:00:18484semak imbas

Why Doesn't `delete` Automatically Set Pointers to NULL in 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:

  • Beliau menjangkakan pelaksanaan akan menyertakan ciri yang secara automatik mensifarkan operan lnilai selepas pemadaman, tetapi amalan ini tidak mendapat penerimaan yang meluas.
  • Walau bagaimanapun, beliau menekankan bahawa hujah padam mungkin tidak selalunya merupakan nilai, yang memperkenalkan kesukaran teknikal untuk penyeragaman tingkah laku ini.

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!

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