```
#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;
}

```

What's the difference if I replace the code highlighted by the comment with:

```
(*p).age = i;

```

and 

```
&p->age = i;  

```

Basically I'm creating a Linked list of the structure stud and I'm trying to initialize some values to it's members.