Почему этот вывод? - PullRequest
0 голосов
/ 31 января 2020

Вот код:

# include <stdio.h> 
# define scanf  "%s Geeks For Geeks " 
main() 
{ 
    printf(scanf, scanf); 
    getchar(); 
    return 0; 
}

Вывод: %s Geeks For Geeks Geeks For Geeks

Как генерируется этот вывод?

1 Ответ

4 голосов
/ 31 января 2020

ваш printf станет

printf(scanf, scanf);

         |
         |
        \ /

printf("%s Geeks For Geeks ", "%s Geeks For Geeks" ); 

         |
         |       //%s is replaced with "%s Geeks For Geeks" string
        \ /

printf("%s Geeks For Geeks Geeks For Geeks ");

и на консоли

%s Geeks For Geeks Geeks For Geeks

В сторону: пожалуйста, не делайте такого рода кодирования. Это отстой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...