Размер символа ('a') в C / C ++

Каков размер символов в C и C ++? Насколько я знаю, размер символа составляет 1 байт в C и C ++.

В С:

#include <stdio.h>
int main()
{
  printf("Size of char : %d\n",sizeof(char));
  return 0;
}

В C ++:

#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 ++?

Ответы на вопрос(4)

Ваш ответ на вопрос