-> 是一个整体,它是用于指向结构体子数据的指针,用来取子数据。
换种说法,如果我们在C语言shu中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。
问题中的p=p->next ,意思是将p指向的一个结构体实例中的自数据next赋值给p。
struct Data
{
int a,b,c;
}; //定义结构体
struct Data *p;// 定义结构体指针
struct DATA A = {1,2,3};//声明结构体变量A
int x;
p = &A;//让p指向A,实际上是把A的地址给p
x = p ->a;//取出p所指向的结构体中包含数据a的值给x
// 此时x = A.a,故 x=1
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。