Rumah > pembangunan bahagian belakang > C++ > Mengapakah `sizeof('a')` Berbeza dalam C dan C ?

Mengapakah `sizeof('a')` Berbeza dalam C dan C ?

Barbara Streisand
Lepaskan: 2024-12-21 14:28:10
asal
321 orang telah melayarinya

Why Does `sizeof('a')` Differ in C and C  ?

Mengapa 'a' Memerlukan Lebih Banyak Bait dalam C daripada C

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'));
}
Salin selepas log masuk

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!

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