Rumah > pembangunan bahagian belakang > C++ > \'const int\' vs. \'int const\' dalam C dan C: Adakah Mereka Benar-benar Sama?

\'const int\' vs. \'int const\' dalam C dan C: Adakah Mereka Benar-benar Sama?

DDD
Lepaskan: 2024-10-27 02:06:30
asal
755 orang telah melayarinya

'const int' vs. 'int const' sebagai Parameter Fungsi dalam C dan C

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>
Salin selepas log masuk

Ya, ia adalah setara. Membaca pengisytiharan ke belakang menjelaskan perkara ini.

Untuk 'const int':

  • "a" ialah integer yang "malar".

Untuk 'int const':

  • "a" ialah " integer malar".

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>
Salin selepas log masuk

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!

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