const
не защищает переменную. На самом деле, const
даже не означает, что переменная никогда не изменится.
Это означает, что вы , программист, заявляете, что вы не будут записывать в эту часть памяти. Вывод, отображаемый в памяти только для ввода на микрочипе, может быть представлен переменной с квалификацией const
, но он все равно может измениться, если напряжение на выводе изменится. (На самом деле, он, скорее всего, будет объявлен const volatile
, что поразило меня в первый раз, когда я его увидел.) Но const
означает, что вам не разрешено писать в него.
Так что, если вы нарушите это обещание - что вы не собираетесь писать ему - ну, тогда да, конечно, это все испортит.