Rumah >pembangunan bahagian belakang >C++ >Mengapakah Aksara Huruf C Diperlakukan sebagai Nombor Bulat?
Aksara Huruf dalam C: Mengapa Ia Integer
Dalam C , aksara aksara seperti 'a' disimpan sebagai jenis data aksara , seperti yang dijangkakan. Walau bagaimanapun, dalam C, literal aksara berkelakuan berbeza dan sebaliknya dianggap sebagai integer. Tingkah laku ingin tahu ini telah membingungkan ramai pengaturcara.
Penjelasan
Sebab di sebalik tingkah laku yang kelihatan tidak lazim ini terletak pada evolusi bahasa C. Pada zaman awal C, dikenali sebagai K&R C (selepas penciptanya Kernighan dan Ritchie), tiada jenis data char yang eksplisit. Sebaliknya, aksara hanya dianggap sebagai integer dengan nilai dalam julat 0 hingga 255. Ini disebabkan oleh had perkakasan pada masa itu.
Untuk memudahkan pembangunan dan menghapuskan keperluan untuk menghantar nilai aksara secara eksplisit kepada integer apabila bekerja dengan mereka, literal aksara C diberikan jenis data int secara lalai. Keputusan reka bentuk ini diteruskan walaupun selepas pengenalan jenis data char dalam versi C berikutnya, menjadikan aksara literal dan integer boleh ditukar ganti dalam konteks ini.
Akibat Tingkah Laku Ini
Keputusan ini mempunyai beberapa implikasi untuk pengaturcaraan C. Pertama, ia membenarkan pemalar berbilang aksara, seperti 'abcd', yang diwakili sebagai integer yang mengandungi kod ASCII aksara. Kedua, ia menghapuskan potensi pemangkasan data apabila menetapkan literal aksara kepada pembolehubah integer, kerana nilai akan sentiasa ditukar kepada int sebelum tugasan.
Tingkah laku ini terus wujud dalam pengkompil C moden atas sebab keserasian. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa tidak semua aksara dalam jadual ASCII boleh diwakili sebagai integer yang ditandatangani dalam C. Aksara yang berada di luar julat integer yang ditandatangani (-128 hingga 127) akan menghasilkan keputusan yang tidak dijangka.
Atas ialah kandungan terperinci Mengapakah Aksara Huruf C Diperlakukan sebagai Nombor Bulat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!