我试图了解使用结构和typedef访问某些组件时的区别
在处理结构时使用点运算符有什么区别 使用下面的例子
到目前为止,我已尝试过此代码
typedef struct _game{
int something;
char something_else;
} g;
如果我使用
g.something or g->something
有什么区别?
我已经使用了他们两个并且他们都返回结果但我仍然不理解差异
有人可以解释一下吗?
答案 0 :(得分:0)
我假设这是C.当问语言问题标记语言时。有许多语言看起来相同,可以给你微妙的不同答案。 C ++是一种与C,btw不同的语言。
在本声明中,
typedef struct _game { int something; } g;
g
是类型,而不是变量。因此,g.something
毫无意义。 typedef
表示"键入define"。相反,你会有
g my_g_instance;
g *my_g_ptr = &my_g_instance;
my_g_instance.something = 2;
my_g_ptr->something = 5;
.
和->
之间的区别在于运算符左侧的变量是否为指针。