Ваше первое выражение может появиться в двух местах. Первый как определение переменной. Само по себе char *foo
определяет переменную - указатель на char
с именем foo
. В контексте определения функции он определяет тип одного из параметров функции:
void function(char *foo)
Объявляет функцию, которая принимает один аргумент char *
и указывает, что на этот аргумент будет ссылаться имя foo
в контексте функции.
Есть также пара объяснений для вашего другого выражения. Первое относится к определению метода, которое похоже на объявление функции выше:
- (void)method:(char *)foo
Объявляет метод экземпляра, принимающий один аргумент, в данном случае типа char *
и с именем foo
. Может также отображаться как тип возвращаемого значения метода:
- (char *)foo
Другой случай, как тип:
void *foo;
char *bar = (char *)foo;
В этом случае выражение typecets foo
из пустого указателя на указатель char
и присваивает значение bar
.
Edit:
Для ваших конкретных примеров:
@interface Worker: NSObject
{
char *foo;
}
В этом примере объявляется переменная экземпляра с именем foo
. Он имеет тип char *
.
- initWithName:(char *)foo
В этом примере объявляется метод экземпляра, принимающий один параметр с именем foo
типа char *
.