基础知识 | 每日一练(109)

基础知识练习

学生:我如何在 printf 的格式串中输出一个 ’%’?我试过 \%, 但是不 行。

小林:只需要重复百分号: %%。\%不行, 因为反斜杠 \ 是编译器的转义字符, 而这里我们的问题最终是 printf 的转义字符。

学生:有人告诉我在 printf 中使用 %lf 不正确。那么, 如果 scanf() 需要 %lf, 怎么可以用在 printf() 中用 %f 输出双精度数呢?

小林:printf 的 %f 标识符的确既可以输出浮点数又可以输出双精度数。根据 “缺 省参数扩展” 规则, 不论范围内有没有原形都会在在类似 printf 的可变长度参 数列表中采用, 浮点型的变量或扩展为双精度型, 因此 printf() 只会看到双精度 数。printf() 的确接受 %Lf, 用于输出长双精度数。

正文完