int - 4 байта, но его можно сохранить в char, почему нет переполнения

Посмотрите эту программу

#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), почему нет переполнения и т. д.

13
задан Registered User 19 June 2011 в 05:28
поделиться