The address of y is still being stored in ptr.
Serial.begin(9600);
byte y = 0x35;
byte *ptr = &y;
Serial.print((unsigned int)ptr, HEX); //shows: 08FB
So, OP's claim that "byte *ptr = &y" is a contraction of the following two lines is correct.
byte *ptr;
ptr = &y;
Would be glad to hear with examples the true difference between "intialization", "declaration", "definition' and "assignment".