最佳答案
第二个(内部)printf 所做的是打印与 a
一样多的字符然后与 b
一样多的字符. printf
返回打印的字符数,即 a
的总和和 b
.
现在让我们更深入一点printf("%*s", a, "\r")
将打印一个通过参数指定宽度的字符串(在本例中为 a
)——这就是星号的作用。默认情况下,字符串会用空格填充。因此你会得到 a - 1
空格后跟一个回车字符。做两次:printf("%*s%*s",a,"\r",b,"\r")
将首先打印一个宽度固定为 a
值的字符串然后是宽度固定为 b
值的第二个字符串.
之后是外层printf
将打印与内部 printf
打印的字符数对应的数字,但我们已经知道那会是什么,不是吗?
注意:由于左填充只能添加,永远不会删除字符,代码实际上是错误的 a = 0
或 b = 0
(或者当然是负面的)
关于c - 这个 printf 技巧是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779523/