输入的参数的个数是不固定的,是由前面的格式化字符串决定的,所以我们只要控制了前面的格式化字符串,再结合一些参数,后面输出什么就是由我们决定的;如: %d 用于读取10进制数值 %x 用于读取16进制数值 %s 用于读取字符串值 %n 用于读取前面字符串的长度并写入某个内存地址 函数 说明 printf() 向标准输出打印格式化内容 fprintf() 向指定文件流输出 sprintf() 输出到字符串 snprintf() 输出到字符串,带长度限制 格式符 含义 危险性 %x 输出一个4/8字节十六进制值(从栈上读) 信息泄露 %s 把栈上的值当作地址,输出该地址处的字符串 任意地址读 %p 输出一个指针地址 地址泄露 %n 将当前...