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