printf中*的用途是什么?

3 c printf

我有这个代码:

#include <stdio.h>
#include <conio.h>
void main()
{
    int n = 5;
    clrscr();
    printf("n=%*d", n);
    getch();
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:n= 5.为什么有空间?它是如何产生的?有什么用的*代码?

Ric*_*III 5

如有疑问,请阅读文档:

*:

宽度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数.

但是,您似乎使用它错了.使用它的正确方法是这样的:

printf("n=%*d", 2, n);
Run Code Online (Sandbox Code Playgroud)