Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Jenis Sebenar String Literal dalam C?

Apakah Jenis Sebenar String Literal dalam C?

Susan Sarandon
Susan Sarandonasal
2024-10-27 21:24:30214semak imbas

 What is the True Type of a String Literal in C  ?

Menentukan Jenis Literal Rentetan

Ramai pengaturcara bergelut untuk memahami jenis literal rentetan. Adakah ia const char * (penunjuk kepada aksara malar) atau const char (karakter malar)?

Jawapannya terletak pada perwakilan literal rentetan dalam C . Tidak seperti dalam C, di mana literal rentetan disimpan sebagai tatasusunan aksara dengan penamat null (' ') ditambah pada penghujungnya, dalam C , literal rentetan pada asasnya const char[N]. Di sini, N menandakan panjang rentetan (termasuk penamat nol).

Pada dasarnya, const char[N] dan char const[N] adalah setara. Ini menunjukkan bahawa anda boleh menentukan panjang literal rentetan dengan pasti menggunakan sizeof("hello") - 1, yang mengira dengan tepat bilangan aksara dalam rentetan (termasuk sebarang aksara nol terbenam). Jika literal rentetan ialah penunjuk, pendekatan ini akan gagal kerana ia akan sentiasa mengembalikan saiz penunjuk dalam sistem anda tolak satu.

Atas ialah kandungan terperinci Apakah Jenis Sebenar String Literal 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