C语言中 -> 是什么意思?

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
举个例子:
struct Data
{
   int a,b,c;
};              /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
         /*由于此时p指向A,因而 p->a == A.a,也就是1*/

对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data 
{
   int a;
   struct Data * next;
};/*定义结构体*/
…………
main()
{
   struct Data * p;/*声明指针变量p*/
  ……
   p = p->next;/*将next中的值赋给p*/
}

猜你喜欢

转载自blog.csdn.net/qq873044564/article/details/82261124
今日推荐