Каков размер символов в C и C ++? Насколько я знаю, размер символа составляет 1 байт в C и 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;
}
Не удивительно, они оба дают вывод: Size of char : 1
Теперь мы знаем , что персонажи представлены в виде 'a', 'b', '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
В 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
Почему sizeof('a')возвращает разные значения в C и C ++?
"%|"Формат требуетintаргумента (или что - то , что способствуетint).sizeofдает результат типаsize_t. Либо преобразуйте вintиспользование приведения, либо, если ваша реализация это поддерживает, используйте"%zu".