Rumah > pembangunan bahagian belakang > C++ > Mengapakah Huruf C Watak Diwakili sebagai Integer?

Mengapakah Huruf C Watak Diwakili sebagai Integer?

Susan Sarandon
Lepaskan: 2024-12-29 18:21:11
asal
526 orang telah melayarinya

Why are C Character Literals Represented as Integers?

Mengapakah aksara C integer literal dan bukan aksara?

Dalam dunia pengaturcaraan, aksara biasanya diwakili oleh integer bait tunggal. Ini benar untuk kebanyakan bahasa pengaturcaraan, termasuk C. Walau bagaimanapun, literal aksara C adalah pengecualian kepada peraturan ini. Mereka sebenarnya diwakili sebagai integer, bukannya aksara. Ini boleh memeranjatkan bagi pendatang baru dalam bahasa itu, yang mungkin menjangkakan literal aksara akan berkelakuan seperti aksara.

Rasional di sebalik keputusan reka bentuk ini berakar umbi dalam sejarah bahasa C. Apabila Dennis Ritchie sedang membangunkan C, dia mahu mengekalkan bahasa itu sekecil dan cekap yang mungkin. Satu cara dia melakukan ini ialah dengan mewakili literal aksara sebagai integer. Ini membolehkannya menjimatkan ruang dan ingatan, yang merupakan kebimbangan kritikal pada masa itu.

Walaupun keputusan reka bentuk ini mungkin masuk akal pada masa itu, ia boleh menjadi punca kekeliruan bagi pengaturcara hari ini. Sebagai contoh, kod berikut akan mencetak nilai 97:

printf("%d", 'a');
Salin selepas log masuk

Ini kerana 'a' diwakili sebagai integer dan fungsi printf() menjangkakan integer sebagai hujahnya. Jika anda ingin mencetak aksara 'a', anda perlu menggunakan penentu format %c:

printf("%c", 'a');
Salin selepas log masuk

Ini akan mencetak aksara 'a', seperti yang dijangkakan.

Perbezaan antara literal aksara dan integer juga boleh menjadi penting apabila bekerja dengan penunjuk. Sebagai contoh, kod berikut akan mencipta penunjuk kepada integer:

int *p;
Salin selepas log masuk

Walau bagaimanapun, kod berikut akan mencipta penunjuk kepada aksara:

char *p;
Salin selepas log masuk

Ini kerana 'a ' diwakili sebagai integer, dan pengkompil akan membuat kesimpulan bahawa p ialah penunjuk kepada integer. Jika anda ingin mencipta penunjuk kepada aksara, anda perlu menggunakan sintaks berikut:

char *p = "a";
Salin selepas log masuk

Ini akan mencipta penunjuk kepada aksara 'a'.

Perbezaan antara aksara literal dan integer boleh menjadi agak mengelirukan pada mulanya, tetapi penting untuk memahami jika anda ingin menulis kod C yang betul. Dengan mengikuti petua di atas, anda boleh mengelakkan perangkap biasa dan menulis kod yang cekap dan betul.

Atas ialah kandungan terperinci Mengapakah Huruf C Watak Diwakili sebagai Integer?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan