#include<stdio.h> int main(int argc, char *argv[]) { int i; for(i=0;i<argc;i++) { printf("argv[%d] is %s ",i,argv[i]); } return 0; }
运行结果:(命令行)
argv[0]:程序的名字。
argv[1]:指向在DOS命令行中执行程序名后的第一个字符串。
argv[2]:指向第二个字符串。
argc 是 argv[] 数组的参数的个数。
另外一种可变参数函数:
DEMOCODE:
#include<stdio.h> #include<stdlib.h> #include<stdarg.h> int add(int num,...) // num 代表可变参数的数量 { int varia,i,sum=0; va_list args; // typedef char * va_list 创建指针存储地址。 va_start(args,num); // 从这里开始读出 num个 参数,并把地址放在 args。 for(i=0;i<num;i++) { varia = va_arg(args,int); // 读取参数,挨个读取。这里的 int 类型也可以换成其他的类型。 printf("%d ",varia); sum += varia; } va_end(args); // 结束读取 return sum; } int main(void) { int sum; sum = add(5,1,2,3,4,5); printf("%d ",sum); printf("%d %d",num,++num); // 函数读取参数从右读取 return 0; }