Нужно сказать, что в Java вообще нет указателей, так как их просто решили запретить там и все, сделав язык особо "безопасным". Но в языке C# есть указатели, только для их использования нужно блок данного кода указать в виде unsafe или класс или метод можно пометить модификатором unsafe и тогда можно использовать указатель, но только еще требуется дополнительно компилятору в настройках дополнительно приказать об использовании указателей, но в Visual Studio это делается в две секунды, то есть просто нажимаете мышкой и среда за вас подключает проект к использованию указателей в C#.
unsafe { /* в данном блоке можно применять указатели */ }
public unsafe class vasja
{/*в данном классе можно использовать указатели */}
public unsafe void Method (int a)
{/*в данном методе можно использовать указатели*/}
Теперь о главной теме поста, вы должны на всю жизнь понять принцип устройства "под капотом" коробочных объектов Java и C# (классов, делегатов, событий и других) , а они устроены так, что к объекту в большой памяти "кучи" у коробочных объектов можно обращаться только по ссылке-коробке, то есть вы никак у коробочного объекта не обратитесь к объекту по имени, а только к коробке-ссылке, которая содержит этот объект.
Это главное отличие объектов в C++ и Java, C# , а еще отличие в том, что в С++ вы можете создать коробку-ссылку любому объекту, а в Java и C# вы безкоробочным объектам не можете никак присвоить виртуальную коробку, при этом в этих двух языках коробочные объекты (классы) могут некоторое время жить без хотя бы одной коробки, но только до того момента, пока класс GC или "сборщик мусора" в своих алгоритмах не примет решение удалить безымянный коробочный объект, у которого в данный момент нет ни одной коробки.
Теперь вы поняли главную тему статьи, почему в C# и Java коробочные объекты не могут иметь указатели? Правильно! Именно потому что указатель после создания может захватить адрес объекта через обращение к самому объекту оператором взятия адреса & (C++, C#) , но коробочные объекты в Java и C# не могут быть вызваны по имени и поэтому указатель также к коробке обратиться не может, но эти объекты могут вызываться оператором new при создании, а также они могут быть еще вызваны только по значению ссылки-коробки, которая принимает значение своего объекта, поэтому указатель никак не может обратиться к таким объектам и взять их адрес, указатель может теоретически взять адрес коробки-ссылки, но такая ДИЧ запрещена в C# и Java!
Теперь вам понятно? Надеюсь, что понятно пояснил материал, также смотрите картинку, на которой постарался изобразить это явление.
Картинка к статье в Telegraph. Указатель содержит адрес ссылки - запрещено в языках C++, Java , C# !!!
Итак, нарисовал вам данный нонсенс, чтобы пояснить статью о доступах к объекту ссылками, указателями, именами, операторами. На данном рисунке показан "нонсенс", когда коробка-указатель содержит ссылку-коробку, но в математике здесь нет ничего необычного, однако, в языках C++ и C# вы не сможете указателю присвоить адрес ссылки, так как в С++ хотя объект может играть роль ссылки-коробки в некоторых контекстах кода, но как раз в случае присваивания указателя объекту в С++ этот объект рассматривается в качестве объекта, а не ссылки, то есть указатель будет брать адрес объекта всегда. А в C# и Java все коробочные или ссылочные (классы) объекты могут быть использованы только по ссылкам, так устроено, что вы не можете напрямую по имени обратиться к самим объектам, то есть когда вы пишете объект в Java и C#, то это коробка-ссылка от него.
Как видите, в теории указатель может указывать на адрес коробки, но и на практике в С++ существуют коробки в коробках, которыми являются указатели на указатели или многозвездочные указатели. В многоуровневых указателях С++/С нет ничего сложного, как вам пытается впарить официальщина.
Пример указателей на указатели C++:
int a = 4; // создается целая переменная с именем a
int* kolja = &a; // создается указатель на целую переменную a
int** petja = &kolja; //создается указатель petja на указатель kolja
int*** vasja = &petja;//создается указатель vasja на двойной ук. petja
Благодарю за внимание, жду от вас подписок, комментов и лайков.