这个问题已经有了答案:
How does printf handle its arguments?
5个答案
我对编程很陌生。现在我正在学习C。请看下面的代码片段-

printf("StudentId: %d CGPA: %f", id, cgpa);
printf("Name: %s StudentId: %d CGPA: %f", name, id, cgpa);

我知道函数需要参数。所以我认为,第一个和第二个printf()方法只需要两个参数-
一。双引号中的第一个参数-"StudentId: %d CGPA: %f""Name: %s StudentId: %d CGPA: %f"
2.第二个在引用之外,即-id, cgpaname, id, cgpa
现在我的问题是-我是不是认为prinf()方法只需要两个参数,不管在双引号后面放了多少变量(即id、cgpa、name甚至department)?
或者如果printf()方法接受多个参数,那么它在c中是如何处理的?

最佳答案

不,说printf总是带两个参数是不正确的。在你的第一个案例中,需要3个论点。在第二种情况下,需要4个参数。
printf是一个variadic function。它需要可变数量的参数。在c中,使用the stdarg.h (or varargs.h) header file提供此类函数的功能。

09-12 03:08