这个问题已经有了答案:
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, cgpa
或name, id, cgpa
现在我的问题是-我是不是认为
prinf()
方法只需要两个参数,不管在双引号后面放了多少变量(即id、cgpa、name甚至department)?或者如果
printf()
方法接受多个参数,那么它在c中是如何处理的? 最佳答案
不,说printf
总是带两个参数是不正确的。在你的第一个案例中,需要3个论点。在第二种情况下,需要4个参数。printf
是一个variadic function。它需要可变数量的参数。在c中,使用the stdarg.h
(or varargs.h
) header file提供此类函数的功能。