Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa C Tidak Menetapkan Penunjuk secara Automatik kepada NULL Selepas Pemadaman?

Mengapa C Tidak Menetapkan Penunjuk secara Automatik kepada NULL Selepas Pemadaman?

DDD
DDDasal
2024-11-11 01:53:02392semak imbas

Why Doesn't C   Automatically Set Pointers to NULL After Deletion?

Pembatalan Automatik Selepas Pemadaman: Mengapa Tidak?

Amalan menetapkan penunjuk secara automatik kepada NULL selepas melakukan operasi pemadaman telah menjadi topik perbahasan untuk pengaturcara. Ramai berpendapat bahawa langkah ini akan mengurangkan dengan ketara kejadian ranap sistem yang disebabkan oleh penunjuk tidak sah. Walau bagaimanapun, piawaian C tidak menggunakan pendekatan ini, membuatkan pengguna ingin tahu tentang sebab di sebalik keputusan ini.

Menurut Bjarne Stroustrup, pencipta C , terdapat beberapa faktor yang menyumbang kepada pengecualian pembatalan penunjuk automatik :

Prestasi Pertimbangan:

Memperkenalkan arahan tambahan untuk menolakkan penuding boleh memberi kesan kepada prestasi keseluruhan operasi pemadaman, terutamanya dalam senario di mana prestasi adalah kritikal.

Penunjuk Konst:

Petunjuk Const merujuk kepada lokasi memori yang tidak boleh diubah suai. Menetapkan penunjuk sedemikian kepada NULL secara automatik boleh membawa kepada tingkah laku yang tidak ditentukan, kerana mengubah suai kandungan objek const tidak dibenarkan.

Walau bagaimanapun, Stroustrup juga mengakui bahawa kebimbangan ini mungkin telah ditangani melalui pengendalian khusus penunjuk const.

Standard membenarkan operasi pemadaman pada rnilai (objek sementara), yang tidak boleh disifarkan keluar. Had teknikal yang dikenakan oleh bahasa itu sendiri merupakan satu lagi halangan kepada pembatalan penunjuk automatik.

Atas ialah kandungan terperinci Mengapa C Tidak Menetapkan Penunjuk secara Automatik kepada NULL Selepas Pemadaman?. 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