Начал изучение С#, появились вопросы по поводу типов данных.
1. Как я понял, типы данных глобально делятся на ссылочные и значимые типы. Я нашёл вот такое интересное определение:
...Эта классификация основана на том, где и как хранятся значения типов.
Для ссылочного типа значение задает ссылку на область памяти в "куче", где расположен соответствующий объект.
Для значимого типа используется прямая адресация, значение хранит собственно данные, и память для них отводится,
как правило, в стеке.
Что значит "как правило, в стеке"? Хорошо, а в каких тогда случаях данные значимых типов могут храниться в куче?
2. На том же ресурсе есть информация о том, что к ссылочным и значимым типам добавляют так же указатели и void. Меня интересуют указатели: в чём их отличие от всех остальных, что их ставят отдельно? И в чём вообще отличие ссылки от указателя?