1
J'ai le code suivant:C Pourquoi sizeof ('a') = 4 et sizeof (char) = 1?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]){
printf("size of tab = %d\n", sizeof('\t'));
printf("size of a = %d\n", sizeof('a'));
printf("size of char = %d\n", sizeof(char));
}
Sortie:
size of tab = 4
size of a = 4
size of char = 1
Pourquoi la taille de 'a'
et la taille des char
différents. N'est-ce pas 'a'
un char
?
'sizeof ('\ t')' calcule en fait la taille d'un '' int' où int' est la valeur ASCII de ' '\' t 'et similaire est le cas de' sizeof ('a') '' –
'' a'' est un 'int'. Toutes les constantes dans C sont au moins 'int'. – chux
6.4.4.4 Constantes de caractère p2 _La constante de caractère entier est une séquence d'un ou plusieurs caractères codés sur plusieurs octets. entre guillemets simples, comme dans 'x' ._ et p10 _La constante de caractère entier est de type int._ 6.5.3.4 ... opérateurs p4 _Lorsque sizeof est appliqué à un opérande de type char, unsigned char, ou char signé, (ou une version qualifiée de celui-ci) le résultat est 1._ – BLUEPIXY