程序代码:
#include <stdio.h>
#include <stdarg.h>
void test(int dim, ...)
{
va_list ap;
va_start(ap, dim);
for(int i = 0; i < dim; i++)
printf("%d", va_arg(ap, int));
va_end(ap);
}
int main()
{
test(3, 2, 3, 4);
return 0;
}
下面是将%s 和 %d对调输出
程序代码:
#include <stdio.h>
#include <stdarg.h>
void test(char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
for (;;)
{
if (*fmt == '\0')
break;
if (*fmt == '%')
{
fmt++;
switch(*fmt)
{
case 'd':
{
printf("%s", va_arg(ap, char*));
break;
}
case 's':
{
printf("%d", va_arg(ap, int));
break;
}
default:
{
putchar(*fmt);
break;
}
}
}
else
{
putchar(*fmt);
}
fmt++;
}
va_end(ap);
}int main()
{
test("hello world\n");
test("%d", "hello world\n");
test("你是 %s\n", 250);
return 0;
}