Let me take a simple example to clear your doubt:
sample :
void main(void)
{
int b=printf("hellow");
printf("%d",b);
}
output:
6
printf("message") is a predefined method which returns "no. of characters present in the message" as the above example.
you code:
int main (void){
const int y = 99;
printf("%d\n", printf("y = %d", y));
}
note: After printing the message printf() always returns int value which is no of characters because return type of printf() is int type.
step 1: Inner printf() function prints 99 first.
step 2: After execution it returns 6 which is no. of characters in the message.
message is "y = %d"
step 3: 6 is hold by outside printf() function as :-
printf("%d",6);
So, it gives output combinely :
996