Qual é o tamanho do caractere em C e C ++? Tanto quanto eu sei, o tamanho do caractere é de 1 byte em C e 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;
}
Sem surpresas, os dois fornecem a saída: Size of char : 1
Agora sabemos que os caracteres são representados como 'a'
, 'b'
, 'c'
, '|'
, ... Então, eu só modificou os códigos acima para estes:
Em 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
Em 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
Por que os sizeof('a')
valores diferentes retornam em C e C ++?
"%|"
formato requer umint
argumento (ou algo que promovaint
).sizeof
produz um resultado de tiposize_t
. Converta paraint
usar uma conversão ou, se sua implementação suportar, use"%zu"
.