Well... lets look at it this way.
double *iii
declares a variable called "iii" which is a pointer to a double. Which means that it contains the address of double values, hence the name "pointer" - it "Points" to the value.
123
Is a number which can be treated as a double.
So
double *iii=123
Declare a pointer to a double and tries to put a double value into it. Not the address of a double, but the value itself.
If you think of a car key as the "pointer" to a car then you are trying to drive the key instead of the car!
I think you need to go back to your lecture notes and read through this stuff again, but the first line could be made to work if you did this:
double vd = 123;
double *iii=&vd;
Because in this case you are putting the address of a double into the pointer. Note that you can't take the address of a constant:
double *iii=&123;
because then you could try to modify constants and the PC Pixies don't like you trying to do that...