0

誰かが私に以下のコードの説明を教えてもらえますか?出力は、コードの後に​​記載されているとおりです。

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); }
4

1 に答える 1

2

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 番目の引数%c34であるため、別の引用符が出力されます。

それだけです。一部:

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); }
于 2012-09-03T19:17:19.427 に答える