可变函数参数#
"参数数量可变"
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]... 引号包围表示一个字符串单元 "