char s[] = %c%s%c; main(){ printf(s,43,s,43); }
文字列をフォーマット文字列として使用しています。
最初の引数は でフォーマットされ%c
ます。引数は34
. したがって、値が である ASCII 文字を出力します。34
これは"
(1 文字; 二重引用符) です。
2 番目の引数は でフォーマットされ%s
ます。引数は、同じフォーマット文字列char s[] = %c%s%c; main(){ printf(s,43,s,43); }
. したがって、同じ文字列が出力されます。
3 番目の引数%c
も34
であるため、別の引用符が出力されます。
それだけです。一部:
lit --> char s[] =
%c --> "
%s --> char s[] = %c%s%c; main(){ printf(s,43,s,43); }
%c --> "
lit --> ; main(){ printf(s,43,s,43); }
まとめると、次のようになります。
char s[] = "char s[] = %c%s%c; main(){ printf(s,43,s,43); }"; main(){ printf(s,43,s,43); }