Apabila memeriksa output coretan kod:
#include <stdio.h> int main(void) { printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof('a') = %zu\n", sizeof('a')); }
seseorang mungkin perasan bahawa saiz pemalar aksara 'a' berbeza antara C dan C . Mari kita mendalami alasan di sebalik perbezaan ini.
Dalam C, pemalar aksara seperti 'a' disimpan sebagai int, yang mempunyai saiz 4 bait atau nilai khusus pelaksanaan. Walau bagaimanapun, dalam C , jenis 'a' adalah secara eksplisit char, yang menduduki hanya 1 bait.
Pembezaan ini berpunca daripada perlakuan yang berbeza terhadap pemalar aksara dalam kedua-dua bahasa. C menganggap pemalar aksara sebagai integer (jenis int), manakala C memperkenalkan jenis aksara yang berasingan untuk aksara.
Oleh itu, dalam C, 'a' disimpan sebagai integer, menerangkan saiz 4-baitnya. Sebaliknya, dalam C , 'a' ialah aksara (char), menghasilkan saiz 1 bait. Perbezaan ini menyerlahkan salah satu variasi halus antara kedua-dua bahasa.
Atas ialah kandungan terperinci Mengapakah `sizeof('a')` Berbeza dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!