誰かが私に以下のコードの説明を教えてもらえますか?出力は、コードの後に記載されているとおりです。
char s[] = "char s[] = %c%s%c; main(){ printf(s,43,s,43); }";
void main(){
printf(s,34,s,34);
}
出力-
char s [] = "char s [] =%c%s%c; main(){printf(s、43、s、43);}"; main(){printf(s、43、s、43); }
誰かが私に以下のコードの説明を教えてもらえますか?出力は、コードの後に記載されているとおりです。
char s[] = "char s[] = %c%s%c; main(){ printf(s,43,s,43); }";
void main(){
printf(s,34,s,34);
}
出力-
char s [] = "char s [] =%c%s%c; main(){printf(s、43、s、43);}"; main(){printf(s、43、s、43); }
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); }