这个' - >'在c/objective-c中意味着什么?

lam*_*ade 1 c syntax objective-c

我正在查看一些代码,我遇到了一些我不知道的含义的语法.' - >'是什么意思?

-(void) getTransformValues:(struct transformValues_*) tv
{
    tv->pos         = positionInPixels_;
    tv->scale.x     = scaleX_;
    tv->scale.y     = scaleY_;
    tv->rotation    = rotation_;
    tv->skew.x      = skewX_;
    tv->skew.y      = skewY_;
    tv->ap          = anchorPointInPixels_;
    tv->visible     = visible_;
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*arq 12

箭头运算符(" - >")被用于在同一个地方,你会使用点运算符(""),但用一个指向结构代替该结构的目的.

typedef struct _Person {
    char name[200];
    unsigned int age;
} Person;
Run Code Online (Sandbox Code Playgroud)

如果您创建了该结构的对象,则可以使用点运算符来访问其成员:

int main()
{
    Person p1;

    strcpy( p1.name, "Baltasar" );
    p1.age = 36;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您是指向结构的指针,而不是结构本身,则只能使用箭头运算符或更复杂的点运算符:

int main()
{
    Person p1;
    Person *ptrPerson = &p1;    // ptrPerson points to p1

    strcpy( ptrPerson->name, "Baltasar" );
    ptrPerson->age = 36;
}
Run Code Online (Sandbox Code Playgroud)

如上所述,您仍然可以使用点运算符:

 int main()
    {
        Person p1;
        Person *ptrPerson = &p1;    // ptrPerson points to p1

        strcpy( (*ptrPerson).name, "Baltasar" );
        (*ptrPerson).age = 36;
    }
Run Code Online (Sandbox Code Playgroud)

当然,所有这些讨论都涉及更多主题,例如指针,堆等.希望这会有所帮助.