int main(void)
{
return(\'yes\', *\"no\", **main, *********printf) (\"hello world!\\n\") *0;
}
outputs hello world!
, but how does it
Two things really:
*main == main
So if we simplify the pointers:
int main(void)
{
return('yes', *"no", main, printf) ("hello world!\n") *0;
}
And using the last element in the list as the value of the list
int main(void)
{
return printf("hello world!\n") *0;
}
printf
returns the number of characters printed
int main(void)
{
return 13 *0;
}
And 13*0 is left as an exercise to the reader.