我正在查看一些代码,我遇到了一些我不知道其含义的语法。 ‘ – >’是什么意思?
-(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; }
当然,所有这些讨论都涉及更多主题,例如指针,堆等。希望这会有所帮助。
->
符号用于访问指针类型的成员。 它与解除引用指针和使用点运算符相同,即
(*tv).pos = positionInPixels_;
它用于访问变量指向的对象/结构的成员。
例如, tv->pos
用于从tv
指向的对象访问成员变量pos
->
用于表示与点相同的东西(表示访问结构,类或联合的成员),除了在变量是指针时使用->
。
“ – >”用于访问结构指针元素。 在C至少……
typedef struct test { int one; int two; } t_test; t_test *foo; /* Allocation and all the stuff */ foo->one = ... foo->two = ...
箭头运算符( – >)采用结构指针(在这种情况下为transformValues_),取消引用它,然后访问该成员变量。 IE:这些是公平的:
(* tv).pos === tv->pos
嗯,你至少考虑过在发布之前试图找出来吗? 这是我从搜索运营商那里得到的……
以上就是c/c++开发分享这个’ – >’在c / objective-c中意味着什么?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/518811.html