У меня есть код, эквивалентный следующему:
const int* const n = new int;
printf("input: ");
scanf("%d", n);
delete n;
Теперь, поскольку n является указателем на целое число CONSTANT, это не должно работать (я ожидаю ошибку компилятора). Однако, похоже, это работает правильно и даже сохраняет значение ввода в * n.
Я хочу знать, почему это не дает мне ошибку; почему это работает? Если scanf не может изменить значение * n?