int main(int argc,char *argv[])的两个参数详解:
- argc是命令行总的参数个数;
- argv[]是argc个参数,其中第0个参数是程序的全名;后面的参数是命令行后面跟的用户输入的参数;
int main(int argc, char* argv[]) {
int i;
for (i = 0; i<argc; i++)
cout<<argv[i]<<endl;
cin>>i;
return 0;
}
执行时敲入:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE aaaa bbb ccc ddd
输出如下:
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE
aaaa
bbb
ccc
ddd
char *argv[]
char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数;
argv[]参数,数组里每个元素代表一个参数;
比如输入:
test a.c b.c t.c
# 那么
argc = 4
argv[0] = "test"
argv[1] = "a.c"
argv[2] = "b.c"
argv[3] = "t.c"
argc
argc记录了用户在运行程序的命令行中输入的参数的个数;
arg[]指向的数组中至少有一个字符指针,即arg[0],它通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序文件所在的路径。
int main(int argc, char ** argv)
{
int i;
for (i=0; i < argc; i++)
printf("Argument %d is %s.\n", i, argv[i]);
return 0;
}
int main(int argc,char *argv)与int main(int argc,char **argv)区别?
-
int main(int argc,char *argv):
- argc: 整数,用来统计你运行程序时送给的命令行参数的个数;
- *argv: 字符串,用来存放指向你的字符串参数的,每一个元素指向一个参数;
- argv[0] 指向程序运行的全路径名;
- argv[1] 指向在DOS命令行中执行程序名后的第一个字符串;
- argv[2] 指向执行程序名后的第二个字符串;
-
int main(int argc,char **argv) 相当于 int main(int argc,char *argv[ ] ):
- argc: 整数,用来统计你运行程序时送给的命令行参数的个数;
- *argv: 字符串,用来存放指向你的字符串参数的,每一个元素指向一个参数;
- argv[1] 指向在DOS命令行中执行程序名后的第一个字符串的指针;
- argv[2] 指向执行程序名后的第二个字符串的指针;
在int main(int argc,char **argv)中 argv[1]是一个指针,存的内容是一个地址;
而在int main(int argc,char *argv)中argv[1]是一个数组元素。