首页 > 解决方案 > 以下输出背后的原因

问题描述

 #include <stdio.h>
 char *prg = "char *prg = %c%s%c;main(){printf(prg,34,prg,34);} " ;
 void main (){
 printf(prg,34,prg,34);
 }

以下输出背后的原因

char *prg = "char *prg = %c%s%c;main(){printf(prg,34,prg,34);} ";main(){printf(prg,34,prg,34);}

标签: c

解决方案


*prg 中的内容被打印,但是代替“%c%s%c”的内容被替换,为什么它被嵌入

这就是工作方式printf()- 在格式(第一个prg参数)中,每个转换规范%c, )根据转换说明符(, %s)转换后续参数(34, )并将结果写入标准输出。prgcs


推荐阅读