这是代码:
# include <stdio.h>
# define scanf "%s Geeks For Geeks "
main()
{
printf(scanf, scanf);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是:%s Geeks For Geeks Geeks For Geeks
这个输出是如何产生的?
你的 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 ");
Run Code Online (Sandbox Code Playgroud)
并在控制台上
%s Geeks For Geeks Geeks For Geeks
Run Code Online (Sandbox Code Playgroud)
旁白:请不要做这种编码。糟透了。