main函数的完全格式是这样的:
int main(int argc, char* argv[], char* envp[])
下面详细介绍:
argc是执行程序时的命令行参数个数。需要注意的是,程序本身的文件也算一个。比如你写了个程序叫ex,若用下面的命令行启动:
ex /p /w
则argc的值为3。
argv是命令行中参数的具体值。比如上例,则有
argv[0]为"ex"
argv[1]为"/p"
argv[2]为"/w"
其实,dos时代的命令行参数就是这样处理的。
最后一个envp是环境变量。
比如path=c:/windows之类的东西。它没有一个整数来为它记数,是通过最后一个evnp[i]==NULL来表示结尾的。
我写了一个程序,用来输出每个参数的值。楼主可以看一下。代码如下:
#include <iostream>
using namespace std;
int main(int argc, char* argv[], char* env[])
{
cout<<"argc------------------"<<endl;
cout<<argc<<endl;
cout<<"argv------------------"<<endl;
int i;
for(i=0;i<argc;i++)
cout<<argv[i]<<endl;
cout<<"env-------------------"<<endl;
for(i=0;env[i]!=NULL;i++)
cout<<env[i]<<endl;
return 0;
}
int main(int argc, char* argv[], char* envp[])
下面详细介绍:
argc是执行程序时的命令行参数个数。需要注意的是,程序本身的文件也算一个。比如你写了个程序叫ex,若用下面的命令行启动:
ex /p /w
则argc的值为3。
argv是命令行中参数的具体值。比如上例,则有
argv[0]为"ex"
argv[1]为"/p"
argv[2]为"/w"
其实,dos时代的命令行参数就是这样处理的。
最后一个envp是环境变量。
比如path=c:/windows之类的东西。它没有一个整数来为它记数,是通过最后一个evnp[i]==NULL来表示结尾的。
我写了一个程序,用来输出每个参数的值。楼主可以看一下。代码如下:
#include <iostream>
using namespace std;
int main(int argc, char* argv[], char* env[])
{
cout<<"argc------------------"<<endl;
cout<<argc<<endl;
cout<<"argv------------------"<<endl;
int i;
for(i=0;i<argc;i++)
cout<<argv[i]<<endl;
cout<<"env-------------------"<<endl;
for(i=0;env[i]!=NULL;i++)
cout<<env[i]<<endl;
return 0;
}
____________________