Can anyone explain me the difference among these two?

```
#include <stdio.h>
void main() {

int a = 10;
int *p = &a;
*p  = 11;  

}

```

and

```
#include <stdio.h>
void main() {
int a = 10;
a = 11;
}

```