Memahami Penunjuk dan Rentetan Null-Terminated dalam C
Apabila bekerja dengan rentetan null-terminated dalam C , soalan biasa timbul: apakah cara yang betul untuk mengisytiharkan penunjuk kepada aksara? Patutkah rentetan char* atau char *string?
Perbezaan antara Pelayakkan Jenis dan Penunjuk
Dalam rentetan char*, asterisk (*) ialah penentu jenis yang mengubah suai char jenis data. Ini menunjukkan bahawa rentetan ialah penuding kepada aksara.
Sebaliknya, char *rentetan menggunakan asterisk sebagai pengendali penunjuk, memisahkannya daripada nama pembolehubah dengan ruang. Ini secara eksplisit menetapkan rentetan sebagai penuding kepada aksara, bukannya sebagai watak itu sendiri.
Mengapa Format Terakhir Lebih Biasa
Dalam rentetan char* deklarasi1, string2;, string1 ialah penunjuk aksara manakala string2 hanyalah aksara. Untuk mengelakkan kekeliruan, pengisytiharan biasanya ditulis sebagai char *string1, string2;. Ini memisahkan pengendali penuding (*) daripada string2 nama pembolehubah, menjadikannya jelas bahawa penuding digunakan pada rentetan1 tetapi bukan rentetan2.
Amalan Baik: Elakkan Pengisytiharan Berbilang
Untuk kejelasan, adalah disyorkan untuk mengelak daripada mengisytiharkan berbilang pembolehubah dalam satu pernyataan, terutamanya apabila berurusan dengan penunjuk. Ini membantu mengelakkan kekaburan dan kemungkinan ralat.
Atas ialah kandungan terperinci Apakah Perbezaan antara `char* string` dan `char *string` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!