Мне нужно узнать это завтра 10 утра для финала, потому что я прокрастинатор.Что делает оператор -> в C?
Я знаю, что все могут ругать меня, если хотите. То, что у меня здесь есть, я должен понимать указатели, чтобы понять связанные списки, и единственное, что пугает мой разум при работе с указателями, - это когда используется ->
.
Из того, что я искал в googled, он меняет то, на что указывает переменная?
Это меня смущает, когда есть строки в коде примера мой профессор дал мне, например, temp = temp->head
в этом коде или когда он заявляет printf("%d", temp->num);
Может кто-нибудь, пожалуйста, помогите объяснить это? Заранее спасибо.
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
struct node
{
int num;
struct node *ptr;
};
typedef struct node NODE;
int main()
{
NODE *head, *temp = 0, *first;
int count = 0;
int choice = 1;
while(choice)
{
head = (NODE *)malloc(sizeof(NODE));
printf("Enter the value: \n");
scanf("%d", &head->num);
if (first != 0)
{
temp->ptr = head;
temp = head;
}
else
first = temp = head;
fflush(stdin);
printf("Do you want to continue?");
scanf("%d", &choice);
}
temp->ptr = 0;
temp = first;
printf("\nStatus of the linked list");
while (temp != 0)
{
printf("%d->" temp->num);
count++;
temp = temp->ptr;
}
printf("NULL\n");
printf("Number of entries in linked list %d", count);
return 0;
}
}