Jaka jest wielkość znaków w C i C ++? O ile mi wiadomo rozmiar char wynosi 1 bajt zarówno w C, jak i 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;
}
Żadnych niespodzianek, oba dają wynik: Size of char : 1
Teraz wiemy, że znaki są reprezentowane 'a'
, 'b'
, 'c'
, '|'
, ... Więc po prostu zmodyfikowany powyższe kody do nich:
W 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
W 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
Dlaczego sizeof('a')
zwraca różne wartości w C i C ++?
"%|"
Format wymagaint
argumentu (lub coś, co promuje sięint
).sizeof
daje wynik typusize_t
. Przekształć naint
użycie rzutowania lub, jeśli twoja implementacja to obsługuje, użyj"%zu"
.