Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan antara `char*` dan `char[]` dalam C?
Memahami Perbezaan antara char* dan char[]
Apabila berurusan dengan tatasusunan aksara dan penunjuk dalam pengaturcaraan C, adalah penting untuk memahami perbezaan asas antara char str[] = "Ujian"; dan char *str = "Ujian";.
char str[] = "Ujian";
Dalam pengisytiharan ini, str mewakili tatasusunan aksara (aksara) dengan saiz tetap, dimulakan dengan kandungan rentetan "Ujian". Tatasusunan memiliki memorinya sendiri dan berbeza daripada literal rentetan asal. Sebarang pengubahsuaian pada str akan mengubah salinan tempatan data, bukan rentetan "Ujian" itu sendiri.
char *str = "Ujian";
Di sini, str ialah penunjuk, khususnya penunjuk kepada aksara pertama rentetan literal "Ujian". Penunjuk menyimpan alamat memori aksara ini. Walau bagaimanapun, adalah penting untuk diingat bahawa str tidak memiliki memori tempat rentetan disimpan; sebaliknya, ia menunjuk kepada rentetan baca sahaja (const) literal. Akibatnya, sebarang percubaan untuk menukar rentetan yang ditunjuk oleh str akan menghasilkan gelagat yang tidak ditentukan.
Perbezaan Utama:
Atas ialah kandungan terperinci Apakah Perbezaan antara `char*` dan `char[]` dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!