#include <stdio.h>
#include <stdlib.h>
struct stud
{
int age;
struct stud *next;
};
typedef struct stud node;
node *createlist();
void main()
{
node *head;
head = createlist();
}
node *createlist()
{
node *head, *p;
head = (node *) malloc(sizeof(node));
int i, n;
printf("Enter the number of elements\n");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
if (i == 0)
{
p = head;
}
else
{
p->next = (node *) malloc(sizeof(node));
p = p->next;
}
p->age = i; /* This line here - what happens with (*p).age = i; or
&p->age = i; */
}
p->next = NULL;
return head;
}
Какая разница, если я заменю код выделенного комментарием с:Какая разница в следующем коде?
(*p).age = i;
и
&p->age = i;
В основном я создаю Связанный список структуры стад и я пытаясь инициализировать некоторые значения его членам.
Ну, один будет компилироваться, а другой - нет. Что вы на самом деле хотите сделать? Испытание и ошибка - это не путь вперед. –
Является ли ваш реальный вопрос, какая разница между '(* p) .age' и' p-> age'? Что это касается всего кода, который вы публикуете? Почему вы не можете сконденсировать свой вопрос в достойный вопрос? –