Apabila mengisytiharkan parameter fungsi dengan const, adalah penting untuk membezakan antara 'const int ' dan 'int const'. Walaupun mereka mungkin kelihatan sama, susunan pengubah mengubah tafsiran pengisytiharan.
'const int' mengisytiharkan pembolehubah yang malar (tidak boleh diubah suai) dan jenis int. Penekanan di sini adalah pada kelayakan const yang digunakan pada pembolehubah.
'int const', sebaliknya, mengisytiharkan pembolehubah yang jenis int dan juga malar. Dalam kes ini, kelayakan const mengubah suai jenis, bukan pembolehubah.
Jadi, adakah kedua-dua fungsi ini sama?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
Ya, ia adalah setara. Membaca pengisytiharan ke belakang menjelaskan perkara ini.
Untuk 'const int':
Untuk 'int const':
Dalam kedua-dua kes, "a" ialah integer dan pemalar.
Walau bagaimanapun, helah membaca ke belakang menjadi tidak ternilai dalam pengisytiharan yang rumit:
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
Ingat, dalam C , ahli data const boleh dimulakan sama ada dalam pengisytiharan kelas atau dalam pembina. Manakala dalam C, ahli data const dianggap sebagai pemalar simbolik dan mesti dimulakan dalam pengisytiharan, yang menjadikannya sangat hampir dengan #define.
Atas ialah kandungan terperinci \'const int\' vs. \'int const\' dalam C dan C: Adakah Mereka Benar-benar Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!