I have a hard time understanding pointers in C. can anybody explain me how these operations differ?

int num = 3;
int *ptr;

ptr = #
ptr = num;
ptr = *num;

I just started doing pointers but they seem kind of confusing