【发布时间】:2014-05-09 16:01:23
【问题描述】:
在 C 程序中,当我定义一个结构时。
在什么情况下我会使用“->”以及在什么情况下使用“.” ?
例如
typedef struct foo foo;
struct foo{
double bar;
double bar2;
}
foo barbar;
什么时候使用barbar.bar,什么时候使用barbar->bar?
【问题讨论】:
-
这是一个过于基础的 C 问题。请查阅您当地的 C 参考书。
-
->用于指针,.用于实例。此外,正如丹尼尔指出的,基本的 C 指针问题。应该在任何好书或教程中找到。 -
a->b与(*a).b完全一样,所以答案是:您可以在任何时候使用->来使用(*a).b。如果您不明白*a的含义,那么您需要退一步了解storage 和pointers 之间的基本关系。&将 storage 转换为 pointer,*将 pointer 转换回 storage。在继续之前,请确保您深入了解这一点。