C - почему происходит переорпеделение если тип не указан?
Почему выполняется данный пример и значение переменной "A" выводится как символьный тип? Т.е почему он из int делает ее char при том, что мы не инициализировали снова переменную с новым типом. Если будем пытаться инициализировать ее с указанием типа char - то тогда будет ошибка. Что происходит в памяти не совсем понимаю. Мы зарезервировали место под int сначала, как потом у нас это место меняется на char? Они же разного размера. Или это потому-что в памяти они хранятся (char) как число?
#include <stdio.h>
int main(void) {
int A = 66;
A = 'd';
printf("%c\n", A);
return 0;
}
Источник: Stack Overflow на русском