Größe des Zeichens ('a') in C / C ++

Wie groß sind die Zeichen in C und C ++? Soweit ich weiß, beträgt die Größe von char in C und C ++ jeweils 1 Byte.

In C:

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

In C ++:

#include <iostream>
int main()
{
  std::cout<<"Size of char : "<<sizeof(char)<<"\n";
  return 0;
}

Keine Überraschungen, beide ergeben die Ausgabe:Size of char : 1

Jetzt wissen wir, dass Zeichen als dargestellt werden'a','b','c','|', ... Also habe ich gerade die obigen Codes geändert:

In 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;
}

Ausgabe:

Size of char : 1
Size of char : 4

In 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;
}

Ausgabe:

Size of char : 1
Size of char : 1

Warum zumsizeof('a') gibt unterschiedliche Werte in C und C ++ zurück?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage