Rumah > pembangunan bahagian belakang > C++ > Apakah Perbezaan Antara `char a[] = 'string';` dan `char *p = 'string';` dalam C?

Apakah Perbezaan Antara `char a[] = 'string';` dan `char *p = 'string';` dalam C?

DDD
Lepaskan: 2024-12-17 19:56:11
asal
646 orang telah melayarinya

What's the Difference Between `char a[] =

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:

  • Storan: Tatasusunan menduduki ruang ingatan berterusan, manakala penunjuk menyimpan alamat memori lokasi.
  • Pengubahsuaian: Tatasusunan membenarkan pengubahsuaian pada elemennya, manakala penunjuk yang menunjuk kepada rentetan tidak boleh diubah suai kerana ia selalunya berada dalam ingatan baca sahaja.
  • Saiz: Tatasusunan mempunyai saiz tetap, ditentukan pada masa penyusunan, manakala saiz rentetan ditunjuk oleh penunjuk mesti ditentukan menggunakan fungsi seperti "strlen()" kerana "sizeof" mengembalikan saiz penunjuk itu sendiri.
  • Penggunaan: Gunakan tatasusunan untuk data yang perlu diubah suai dan penunjuk untuk data yang tetap dan tidak boleh diubah.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan