printf参数详解

char arr[10] = "abcdef";
int a = 10;
printf("%s\n", arr);·
printf("%d\n", a);

我想问一下,printf的参数到底是什么。我看函数原型好像是指针,例如arr作为数组名即地址,但好像又可以是变量的名字,例如a是变量名
int printf(const char *format,[argument])中的argument是什么?为什么我见到有的原型的写法是int printf ( const char * format, ... );
万分感谢

https://www.apiref.com/cpp-zh/c/io/fprintf.html

printf() 是 C 语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。使用 printf() 时 要加头文件 stdio.h。

2、函数原型:

int printf ( const char * format, ... );
1
1
3、返回值:

正确返回输出的字符总数,错误返回负值。与此同时,输入输出流错误标志将被置值,可由指示器函数 ferror(FILE *stream) 来检查输入输出流的错误标志,如果 ferror() 返回一个非零值,表示出错。

4、调用格式:

printf("格式化字符串", 输出表列)
1
1
5、格式化字符串包含三种对象,分别为:

1)字符串常量;
2)格式控制字符串;
3)转义字符。

字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以 % 开头的字符串,在 % 后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

二、格式控制字符串
1、printf() 的格式控制字符串组成如下:

%[flags][width][.prec][length]type
1
1
分别为:

%[标志][最小宽度][.精度][类型长度