Другие языки программирования и технологии

C++ помогите

Помогите разьяснить пару вопросов, сколько не читал книг так и не понял.

1)Объясните как работает ссылка * (просто насилует мой мозг)
2) как работае ссылка на ссылку ** (Это мой мозг просто разрывает на куски)

3) и зачем нужен cast const, я так понял это для того что бы менять значение. НО зачем, если оно константа то и должно быть не изменным. или я что-то недопонимаю?
про ссылки и адреса - тут объяснять долго, скачай книжку Кернигана-Ритчи по Си, там великолепно все разжевано.

про const_cast. В языке есть просто константы типа 21 или "привет", а есть переменные с аттрибутом const. Эти размещаются и передаются как обычные переменные, но словечко говорит, что разработчик считает, что переменная не будет меняться вообще или в данном месте. По идее при идеальном программировании так и было бы, но в реальности бывает иногда нужно или менять такие переменные, или передать в адрес в функцию, которая написана без const, то есть - не обещает, что не поменяет ничего.
В итоге если нельзя, но хочется - то можно, но неудобно.
Язык позволяет сделать постоянную переменной - но для этого программист должен сам явно написать const_cast, то есть сказать компилятору типа "я знаю, что это делаю, это не случайная ошибка) .

обычный пример - когда есть в классе какая-то переменная или строка, которая должна однажды быть посчитана, а потом оставаться константой.
ее объявляют const, но в начале один раз рассчитывают и присваивают - и тут нужно уметь присваивать ей.

а еще чаще - когда используют несколько библиотек от разных авторов и кто-то const поставил, а кто-то - нет, ну не лезть же править чужие коды!
Звездочка - не ссылка, а операция разыменования. Ссылка обозначается как & (впрочем, этот знак используется и иначе) . C++ не рассчитан на начинающих изучать программирование, да и вообще далеко не на всякий мозг. .
1) Программа хранит значения в оперативной памяти. Ссылка- это адрес на участок памяти.
2) если записать ссылку в переменную, то программа будет хранить её значение в, не поверишь, оперативной памяти. Ничего отличающегося от описанного в п. 1 не происходит.
ps как не сложно догадаться, сделано это не просто так. Если знать размерность переменной, по ссылке можно получить её значение. Зачастую это более грамотно и менее ресурсоемко чем просто передавать значение переменной.
Андрей Колосов То жо всё исполняемое в текущий момент хранится в оперативной папети мне это известно.
Я не понимаю как их правильно исспользовать.
int M = *int[] - Вот например это как понимать? - то что в результате будет безразмерный одномерный массив это я уже знаю. но как это расстолковать как это срабатывает не могу врубиться...