C语言结构体的取结构体里参数的问题。。。

取结构体里的数据有两个符号
有"."和"->"两种,请问这两种有什么区别

你好,是这样的,假如是->的话,这个元素就是一个指向结构体的指针,既然是指针,所以取原本结构体的数据就要用->这个符号,那假如本来就是结构体这个元素的话,取当中的成员就可以直接用.
例如struct p{
char a;int num
}ss;

struct p *q;
q=ss;
假如要去a成员就可以用
q->a或者ss.a
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
如果这是个结构体,那就用“.”引用内部成员
如果这是个指向结构体的指针,那就用“->”引用内部成员本回答被提问者采纳
第2个回答  2014-01-08
->叫做指向操作符,凡是结构体指针变量均采用这样的操作符来取成员。如下列子:
struct point
{
int x;
int y;
};

point pt;
pt.x=1;
pt.y=2;

但同时,这样也行:
point pt;
point* ppt=&pt;
ppt->x=1;
ppt->y=2;

指向操作符提供了一个更灵活的引用指针的方法。本回答被网友采纳
第3个回答  2014-01-08
例:
struct
{
char name;
........
}s,*p=s;
s.name等价于p->name
相似回答