在 C 语言中,L.next
和 L->next
是两种不同的方式用于访问结构体(或指向结构体的指针)的成员。
-
L.next:
L.next
的写法一般用于描述结构体类型的变量,而不是指针。- 这种写法通常用于在结构体类型的变量中直接访问成员。
举例:
struct Node { int data; struct Node next; // 注意这里是结构体类型,不是指针类型 }; struct Node L; L.next.data = 10; // 访问 L 结构体中的 next 成员的 data 成员
-
L->next:
L->next
的写法用于描述指向结构体的指针,通常用于在结构体指针中访问成员。L->next
表示从指向结构体的指针L
中访问next
成员。
举例:
struct Node { int data; struct Node *next; // 注意这里是指针类型 }; struct Node *L = malloc(sizeof(struct Node)); L->next->data = 10; // 访问 L 指向的结构体中的 next 成员的 data 成员
总结:
L.next
适用于直接访问结构体类型变量中的成员。L->next
适用于通过指向结构体的指针访问结构体中的成员。