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 wymagaintargumentu (lub coś, co promuje sięint).sizeofdaje wynik typusize_t. Przekształć naintużycie rzutowania lub, jeśli twoja implementacja to obsługuje, użyj"%zu".