可变函数参数#

"参数数量可变"
double average(int count,...) { // 固定参数count传入必要信息 + 可变参数
    va_list args; // va_list 为特殊类型
    va_start(args, count); // 初始化va_list变量
    double sum = 0.0;
    for (int i = 0; i < count; i++) {
        sum += va_arg(args, int); // 获取下一个参数,并移动指针到下一位
    }
    va_end(args); // 清理va_list列表,必须与va_start配对使用
    return sum / count;
}

"标准库<stdarg.h>核心内容:类型va_list,  宏va_start va_arg va_end va_copy"

命令行参数#

int main(int argc, char *argv[]){};
int main(int argc, char **argv){};

"命令行传参数不是函数传参,传入:程序名 + args"
"main内部自动得到argc = args数 + 1(即命令行所有输入字符串单元包括程序名的数量)"
"argv[0]=程序名,argv[1]... 引号包围表示一个字符串单元 "