Посмотрите эту программу
#include<stdio.h>
int main (){
char c='a';
printf("%d %d", sizeof(c),sizeof('a'));
}
, результат будет 1 4
Я знаю, когда мы пишем оператор char c = 'a';
, тогда как это происходит что в пространстве размером 1 байт (char c) хранится что-то размером 4 байта (код ASCII), почему нет переполнения и т. д.