Quelle est la taille des caractères en C et C ++? Autant que je sache, la taille de char est de 1 octet en C et C ++.
#include <stdio.h>
int main()
{
printf("Size of char : %d\n", sizeof(char));
return 0;
}
#include <iostream>
int main()
{
std::cout << "Size of char : " << sizeof(char) << "\n";
return 0;
}
Pas de surprise, les deux donnent la sortie: Size of char : 1
Maintenant , nous savons que les personnages sont représentés comme 'a'
, 'b'
, 'c'
, '|'
, ... Je viens donc modifié les codes ci - dessus pour ceux - ci:
En C:
#include <stdio.h>
int main()
{
char a = 'a';
printf("Size of char : %d\n", sizeof(a));
printf("Size of char : %d\n", sizeof('a'));
return 0;
}
Size of char : 1
Size of char : 4
En C ++:
#include <iostream>
int main()
{
char a = 'a';
std::cout << "Size of char : " << sizeof(a) << "\n";
std::cout << "Size of char : " << sizeof('a') << "\n";
return 0;
}
Size of char : 1
Size of char : 1
Pourquoi le sizeof('a')
renvoie des valeurs différentes en C et C ++?
"%|"
format nécessite unint
argument (ou quelque chose qui promeutint
).sizeof
donne un résultat de typesize_t
. Soit convertir enint
utilisant un cast ou, si votre implémentation le prend en charge, utilisez"%zu"
.