Perbezaan Antara "char a[] = "string";" dan "char *p = "string";"
Dalam pengaturcaraan, pembolehubah boleh sama ada penunjuk atau tatasusunan. Apabila mengisytiharkan pembolehubah, sintaks untuk penunjuk dan tatasusunan berbeza. Memahami perbezaan antara kedua-duanya adalah penting untuk memanipulasi data dengan betul.
char a[] = "string";
Barisan kod ini mencipta susunan aksara yang besar cukup untuk menyimpan rentetan "rentetan" bersama-sama dengan null-terminatornya. Tatasusunan "a" dimulakan dengan unsur rentetan "rentetan". Tatasusunan boleh diubah suai kemudian, dan saiznya diketahui pada masa penyusunan, membenarkan penggunaan operator "sizeof" untuk menentukan panjangnya.
char *p = "string";
Barisan kod ini mencipta penunjuk bernama "p" yang menghala ke alamat rentetan "rentetan". Penunjuk "p" tidak boleh diubah suai, tetapi rentetan yang ditunjukkannya boleh, mengakibatkan tingkah laku tidak ditentukan.
Perbandingan:
Nota: Contoh dalam soalan mengandungi kesilapan taip, sebagai "?" bukanlah pengendali yang sah dalam konteks ini. Telah diandaikan bahawa soalan yang dimaksudkan adalah tentang perbezaan antara tatasusunan dan penunjuk.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `char a[] = 'string';` dan `char *p = 'string';` dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!