The * is the Indirection Operator.  If you see this
operator in front of a pointer variable, it means:

Get the CONTENTS in memory where this pointer is pointing!

In the case of this code:

*int_ptr = 20;

the value 20 is being assigned to the contents in memory
where int_ptr is pointing.  That is, to the memory location
that was allocated for the variable NUM1, assign a 20.

We could have accomplished the same thing (assigning the
value of 20 there) if we had done the following:

NUM1 = 20;