printf()
的第一个参数始终是字符串值,称为格式控制字符串。该字符串可以是常规文本,如
printf("Hello, World\n"); // \n indicates a newline character
或者
char greeting[] = "Hello, World\n";
printf(greeting);
该字符串还可能包含一个或多个转换说明符; 这些转换说明符表明已传递额外的参数给printf()
函数,并且它们指定如何将这些参数格式化为输出。例如,我可以将上述内容更改为
char greeting[] = "Hello, World";
printf("%s\n", greeting);
"%s"的格式控制符需要指向以0结尾的字符串的指针,并将其格式化为文本。
要输出有符号的十进制整数,请使用"%d"或"%i"格式控制符,例如
printf("%d\n", addNumber(a,b));
您可以混合使用转换说明符和常规文本,例如:
printf("The result of addNumber(%d, %d) is %d\n", a, b, addNumber(a,b));
请注意控制字符串中的转换说明符表示附加参数的数量和类型。如果传递给printf()
的附加参数的数量或类型与格式字符串中的转换说明符不匹配,则行为是未定义的。例如:
printf("The result of addNumber(%d, %d) is %d\n", addNumber(a,b));
如果不正确使用,会导致输出混乱或直接崩溃。
转换说明符还有许多其他标志,用于控制字段宽度、精度、填充、对齐和类型等。请查看方便的C参考手册,以获取完整列表。