int main(int argc,char* argv[]) 也可以写成 int main(int argc,char** argv)。
argc表示程序运行时发送给main函数的命令行参数的个数(包括可执行程序以及传参)。
argv[]是字符指针数组,它的每个元素都是字符指针,指向命令行中每个参数的第一个字符。
argv[0]指向可执行程序。
argv[1]指向可执行程序后的第一个字符串。
argv[2]指向可执行程序后的第二个字符串 。
argv[3]指向可执行程序后的第三个字符串 。
argv[argc]为NULL。
在VisualStudio中main-para-test.c文件中写如下代码:
#include<stdio.h>
int main(int argc, char* argv[])
{
int i;
for (i = 0; i < argc; i++)
printf(" the %d th para is %s \n", i, argv[i]);
while (1);
return 0;
}
编译后,在DOS界面中输入main-para-test 3 dddhh hhh
运行结果显示如下:
补充说明
main函数的原型还可以是:int main(int argc, char **argv, char **env)。其中第三个参数是一个字符串数组,表示环境变量。
#include <stdio.h>
// env就是我们给main函数额外传递的环境变量字符串数组
int main(int argc, char **argv, char **env)
{
int i = 0;
printf("argc = %d.\n", argc);
while (NULL != argv[i])
{
printf("argv[%d] = %s\n", i, argv[i]);
i++;
}
i = 0;
while (NULL != env[i])
{
printf("env[%d] = %s\n", i, env[i]);
i++;
}
return 0;
}