我在查看一些代码时遇到了一些我不知道其含义的语法。 “->”是什么意思?
-(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_;
}
最佳答案
箭头运算符 ('->') 与使用点运算符 ('.') 的位置相同,但带有指向结构而不是该结构对象的指针。
typedef struct _Person {
char name[200];
unsigned int age;
} Person;
如果您创建了该结构的对象,您将使用点运算符来访问其成员:
int main()
{
Person p1;
strcpy( p1.name, "Baltasar" );
p1.age = 36;
}
但是,如果您指向一个结构的指针,而不是结构本身,您只能使用箭头运算符,或者更复杂一点的点运算符:
int main()
{
Person p1;
Person *ptrPerson = &p1; // ptrPerson points to p1
strcpy( ptrPerson->name, "Baltasar" );
ptrPerson->age = 36;
}
正如我上面所说,您仍然可以使用点运算符:
int main()
{
Person p1;
Person *ptrPerson = &p1; // ptrPerson points to p1
strcpy( (*ptrPerson).name, "Baltasar" );
(*ptrPerson).age = 36;
}
当然,所有这些讨论都涉及更多主题,例如指针、堆等。希望对您有所帮助。
关于objective-c - 这个 ' ->' 在 c/objective-c 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346224/