Каков размер символа в C и C++? Насколько я знаю, что размер символа составляет 1 байт и в C и в C++.
#include
int main()
{
printf("Size of char : %d\n", sizeof(char));
return 0;
}
#include
int main()
{
std::cout << "Size of char : " << sizeof(char) << "\n";
return 0;
}
Никакие неожиданности, они оба дают вывод: Size of char : 1
Теперь мы знаем, что символы представлены как 'a'
,'b'
,'c'
,'|'
... Таким образом, я просто изменил вышеупомянутые коды к ним:
В C:
#include
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
В C++:
#include
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
Почему sizeof('a')
возвращает различные значения в C и C++?
В C, тип символа , как , как «А»
- это на самом деле INT
, размером 4 (или некоторые другие зависимыми для реализации значение). В C ++ тип CHAR
, размером 1. Это одно из многих небольших различий между двумя языками.