printValues 期望后面是一堆 int ,但是传给它的是一个 va_list 。va_list 不是 int,当然就不对了。 如果想想现在这样调用,那么 printValues 的参数就应该是 va_list args ,而不是 ... 。 printValues(int count, va_list args) C 的 printf 就有 v 系列函数,比如: int vprintf(const char *format, va_list arg); 就是用 va_list 作为参数。