有人可以给我下面代码的解释。输出如代码后所述。
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); }
作为格式化字符串。
第一个 arg 使用%c
. 论据是34
。所以它打印出值为 的 ASCII 字符34
,即"
(一个字符;双引号)。
第二个 arg 使用%s
. 参数是相同的格式字符串,char s[] = %c%s%c; main(){ printf(s,43,s,43); }
. 所以它打印出相同的字符串。
第三个 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); }
其中,当放在一起时,是:
char s[] = "char s[] = %c%s%c; main(){ printf(s,43,s,43); }"; main(){ printf(s,43,s,43); }