可能重复:
C++中的箭头运算符( - >)同义词是什么?
我找不到关于" - >"的文档,它在Gnome代码库中经常使用.例如在gedit中他们有:
loader->document = g_value_get_object (value)
Run Code Online (Sandbox Code Playgroud)
与装载机有关的文件是什么?还有许多其他示例以及更基本的小部件.
loader是一个指针.->取消引用指向结构的指针.这与打字相同(*loader).
因此:
struct smth {
int a;
int b;
};
struct smth blah;
struct smth* pblah;
Run Code Online (Sandbox Code Playgroud)
......去访问a的blah,您需要输入blah.a,从pblah你需要写pblah->a.请记住,它需要指向一些东西!
loader是指向a struct或a 的指针union.将struct/ union已至少一个成员,命名为document:
struct astruct {
T document;
};
Run Code Online (Sandbox Code Playgroud)
T以上是类型document,也是返回的类型g_value_get_object().
然后,鉴于以下声明:
struct astruct s;
struct astruct *loader = &s;
Run Code Online (Sandbox Code Playgroud)
以下是等效的:
s.document = ...
loader->document = ...
(*loader).document = ...
Run Code Online (Sandbox Code Playgroud)
形式上,->是一个二元运算符,其第一个操作数的类型为"指向结构或指向并集的指针",第二个操作数是此类型成员的名称.