Правда ли, что Asterisk всегда означает "Эй, это указатель!". А указатель всегда имеет адрес памяти?
(Да, я знаю, за исключением того, что a * используется для математической операции)
Пример:
NSString* myString;
или
SomeClass* thatClass;
или
(*somePointerToAStruct).myStructComponent = 5;
Я чувствую, что мне больше нужно знать об Asterirsk (*), чем я использую его при определении переменной, являющейся указателем на класс.
Потому что иногда я уже говорю в объявлении параметра, что переменная Параметр является указателем, и все же я должен использовать Asterisk перед переменной для доступа к значению. Это произошло недавно после того, как я захотел передать указатель на структуру методу, как [myObj myMethod: & myStruct], я не смог получить доступ к значению компонента из этой структуры, хотя в объявлении моего метода уже сказано, что есть параметр (DemoStruct *) myVar, который действительно должен быть известен как указатель на этот демострат, все же я всегда должен был сказать: "Человек, компилятор. Слушайте! Это IIISSS указатель:" и напишите: (* myVar).myStructComponentX = 5;
Я действительно действительно не понимаю, почему я должен сказать это дважды. И только в этом случае.
Когда я использую Asterisk в контексте NSString * myString, я могу просто получить доступ к myString, но мне нравится, не сообщая компилятору каждый раз, когда это указатель. например, использовать * myString = @ "yep".
Мне это просто не имеет смысла.