0

我不清楚这个结构内部的一些语法。有人可以解释一下代码的以下x->部分。那有什么作用?这是另一种取消引用的方式吗?

void rectangle_init(t_rectangle *x)
{
    x->x0=-1;
    x->y0=-1;
    x->x1=1;
    x->y1=1;
}
4

2 回答 2

9

运算符是取消引用和访问成员的->简写;当你写

x->x0

就像你写的一样

(*x).x0

引入速记是因为它经常struct通过指针访问 s 的成员,并且“原始”语法看起来不必要地复杂。

于 2012-08-16T15:51:09.537 回答
1

一般来说:当你有一个像 *x 这样的指针并且你想改变 x 中的一个元素时,使用 x->xxx = ... 如果它不是一个指针(例如 y),那么使用 y.xxx = 。 ..

于 2012-08-16T15:55:20.860 回答