Memahami Perbezaan Antara char* dan char[]
Apabila berurusan dengan data aksara dalam pengaturcaraan C, perbezaan antara char* dan char [] sering mencetuskan kekeliruan. Memahami perbezaan mereka adalah penting untuk pengaturcaraan yang berjaya.
Pertimbangkan dua pengisytiharan berikut:
<code class="c">char str[] = "Test"; char *str = "Test";</code>
char str[] = "Ujian";
Pengisytiharan ini mentakrifkan tatasusunan aksara bernama str yang memegang salinan aksara dalam rentetan literal "Ujian". Tatasusunan memiliki dan mengurus kandungannya, membenarkan pengeditan dan manipulasi.
char *str = "Ujian";
Sebaliknya, pengisytiharan ini mencipta penunjuk bernama str yang merujuk rentetan literal "Ujian". Asterisk (*) menunjukkan bahawa str ialah pembolehubah penunjuk. Ia tidak memiliki kandungan rentetan tetapi hanya menunjuk kepada aksara pertama rentetan itu. Rentetan "Ujian" ialah pemalar, bermakna kandungannya tidak boleh diubah suai.
Perbezaan utama antara char[] dan char terletak pada pemilikan dan kebolehubahan. char[] mewakili tatasusunan yang memiliki datanya dan boleh diubah suai. char, sebaliknya, mewakili penuding yang tidak boleh mengubah suai data asas, kerana ia menunjuk kepada literal rentetan baca sahaja.
Atas ialah kandungan terperinci Apakah perbezaan asas antara char* dan char[] dalam pengaturcaraan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!