Rumah >pembangunan bahagian belakang >C++ >Adakah C String Literal Mempunyai Peruntukan Memori Statik dan Sepanjang Hayat?
Memahami Huruf Rentetan dalam C : Peruntukan dan Sepanjang Hayat
Tersurat rentetan dalam C ialah jujukan aksara yang disertakan dalam petikan berganda ("" ). Ini menimbulkan persoalan: adakah rentetan literal diperuntukkan dalam ingatan statik dan berterusan sepanjang pelaksanaan program?
Peruntukan dan Tempoh Storan
Jawapannya ya. Literal rentetan dicipta dalam memori statik, bermakna ia diperuntukkan semasa pemulaan program dan kekal boleh diakses sehingga program ditamatkan. Ciri ini berpunca daripada tempoh penyimpanan literal rentetan.
Penjelasan Standard
Menurut Standard C (2.13.4/1), literal rentetan biasa mempunyai jenis "array of n const char" dan tempoh storan statik. Tempoh storan statik, seperti yang ditakrifkan dalam 3.7.1/1 Standard, menetapkan bahawa storan untuk objek tersebut bertahan untuk keseluruhan hayat program.
Oleh itu, literal rentetan mendapat manfaat daripada mempunyai tempoh storan statik, yang memastikan ia ketersediaan sepanjang program. Ia kekal utuh walaupun semasa pemusnahan objek statik atau operasi pengurusan memori lain.
Atas ialah kandungan terperinci Adakah C String Literal Mempunyai Peruntukan Memori Statik dan Sepanjang Hayat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!