在C编程、Gtk+编程中“->”代表什么?

在C编程、Gtk+编程中“->”代表什么?,c,gtk,C,Gtk,可能重复: 我在->上找不到文档,它在Gnome代码库中经常使用。例如,在gedit中,他们有: loader->document = g_value_get_object (value) 与加载器相关的文档是什么?还有许多其他的例子,还有一些更基本的小部件。加载器是指针。->取消引用指向结构的指针。这与键入*loader相同 因此: struct smth { int a; int b; }; struct smth blah; struct smth* pblah; …

可能重复:

我在->上找不到文档,它在Gnome代码库中经常使用。例如,在gedit中,他们有:

loader->document = g_value_get_object (value)
与加载器相关的文档是什么?还有许多其他的例子,还有一些更基本的小部件。

加载器是指针。->取消引用指向结构的指针。这与键入*loader相同

因此:

struct smth {
  int a;
  int b;
};

struct smth blah;
struct smth* pblah;
…要从blah访问a,您需要键入blah.a,从pblah您需要编写pblah->a。记住,它需要指向一些东西

加载器是指针。->取消引用指向结构的指针。这与键入*loader相同

因此:

struct smth {
  int a;
  int b;
};

struct smth blah;
struct smth* pblah;
…要从blah访问a,您需要键入blah.a,从pblah您需要编写pblah->a。记住,它需要指向一些东西

加载器是指向具有文档字段的结构的指针,用于访问它。

加载器是指向具有文档字段的结构的指针,用于访问它。

加载器->文档与:*加载器相同。文档与:*加载器相同。文档是指向结构或联合的指针。结构/联合至少有一个名为document的成员:

上面的T是文档的类型,也是g\u value\u get\u对象返回的类型

然后,鉴于以下声明:

struct astruct s;
struct astruct *loader = &s;
以下是等效的:

s.document = ...
loader->document = ...
(*loader).document = ...
形式上,->是一个二进制运算符,其第一个操作数具有指向结构的类型指针或指向联合的指针,第二个操作数是此类类型成员的名称。

加载程序是指向结构或联合的指针。结构/联合至少有一个名为document的成员:

上面的T是文档的类型,也是g\u value\u get\u对象返回的类型

然后,鉴于以下声明:

struct astruct s;
struct astruct *loader = &s;
以下是等效的:

s.document = ...
loader->document = ...
(*loader).document = ...

形式上,->是一个二元运算符,其第一个操作数具有指向结构的类型指针或指向联合的指针,第二个操作数是此类类型成员的名称。

具体地说,它是指向结构的指针,->访问它所指向的结构的成员。它与*loader.document等效,只是更短更清晰。实际上,*取消引用指针。->取消引用指针,然后访问指向的结构的字段。加载器可以是联合。具体地说,它是指向结构的指针,并->访问指向的结构的成员。它与*loader.document等效,只是更短更清晰。实际上,*取消引用指针。->撤销指针,然后访问它指向的结构域。Load可能是一个联合。DUPE,很多次-是的,它是C++问题,但它是相同的操作符。DUPE,很多次-是的,它是C++问题,但它是相同的操作符。