有人可以给我解释下面的代码 . 输出如代码后面提到的那样 .
char s[] = "char s[] = %c%s%c; main(){ printf(s,43,s,43); }"; void main(){ printf(s,34,s,34); }
OUTPUT-
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); } 作为格式字符串 .
char s[] = %c%s%c; main(){ printf(s,43,s,43); }
第一个arg的格式为 %c . 参数是 34 . 因此它打印出ASCII值字符,其值为 34 ,即 " (一个字符;双引号) .
%c
34
"
第二个arg的格式为 %s . 参数是相同的格式字符串 char s[] = %c%s%c; main(){ printf(s,43,s,43); } . 所以它打印出相同的字符串 .
%s
第三个arg是 %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); }
当放在一起时,它是:
1 回答
您使用字符串
char s[] = %c%s%c; main(){ printf(s,43,s,43); }
作为格式字符串 .第一个arg的格式为
%c
. 参数是34
. 因此它打印出ASCII值字符,其值为34
,即"
(一个字符;双引号) .第二个arg的格式为
%s
. 参数是相同的格式字符串char s[] = %c%s%c; main(){ printf(s,43,s,43); }
. 所以它打印出相同的字符串 .第三个arg是
%c
,也是34
,所以它打印另一个引号 .这里的所有都是它的 . 部分:
当放在一起时,它是: