Soalan penemu duga melibatkan kesilapan menaip, sebagai "?" operator tidak sah dari segi semantik. Dengan mengandaikan ralat tipografi, kita boleh mentafsir soalan yang dimaksudkan:
Apakah perbezaan antara "char a[] = "string";" dan "char *p = "string";"?
Array vs. Penunjuk
Perbezaan utama antara pengisytiharan ini terletak pada struktur data yang mereka cipta :
Pertimbangan Penggunaan
Feature | Array | Pointer |
---|---|---|
Data Type | Character Array | Character Pointer |
Modificability | Modifiable | Immutable |
Size Determination | sizeof can be used | strlen function must be used |
Usage | Used when the string content needs modification | Used when the string content remains constant |
Bergantung pada senario, anda perlu memilih data yang betul struktur:
Gunakan tatasusunan apabila anda perlu memanipulasi atau mengubah suai kandungan rentetan.
Dalam C , penggunaan literal rentetan tanpa kata kunci "const" tidak digunakan lagi. Oleh itu, pengisytiharan yang betul ialah:
Array: char a[] = const "string";")
Perlu diingat bahawa ini konsep digunakan secara khusus untuk C dan bukan C . Dalam C , pengendalian rentetan adalah berbeza dan struktur kod yang disebutkan di atas tidak akan digunakan untuk manipulasi rentetan.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `char a[] = 'string';` dan `char *p = 'string';`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!