Maison > développement back-end > C++ > Pourquoi `sizeof('a')` diffère-t-il en C et C ?

Pourquoi `sizeof('a')` diffère-t-il en C et C ?

Barbara Streisand
Libérer: 2024-12-21 14:28:10
original
319 Les gens l'ont consulté

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

Pourquoi 'a' nécessite plus d'octets en C qu'en C

Lors de l'examen de la sortie de l'extrait de code :

#include <stdio.h>
int main(void)
{
    printf("sizeof(char) = %zu\n", sizeof(char));
    printf("sizeof('a')  = %zu\n", sizeof('a'));
}
Copier après la connexion

on peut remarquer que la taille de la constante de caractère 'a' diffère entre C et C . Examinons le raisonnement derrière cette disparité.

En C, une constante de caractère comme « a » est stockée sous la forme d'un entier, qui a une taille de 4 octets ou une valeur spécifique à l'implémentation. Cependant, en C , le type de 'a' est explicitement char, qui n'occupe que 1 octet.

Cette distinction découle du traitement différent des constantes de caractères dans les deux langages. C traite les constantes de caractères comme des entiers (de type int), tandis que C introduit un type char distinct pour les caractères.

Par conséquent, en C, « a » est stocké sous forme d'entier, expliquant sa taille de 4 octets. En revanche, en C , « a » est un caractère (char), ce qui donne une taille de 1 octet. Cette différence met en évidence l'une des subtiles variations entre les deux langues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal