main (int argc,char *argv[]) 解析
2012-04-02 11:13
232 查看
C语言刚开始的学习中,我们知道main函数是程序的入口函数,每次程序执行都是从main函数开始,一般对于初学者,书上会用这样的框架让你书写程序:
int main()
{
return 0;
}
上边的框架没有任何问题,对于初学者来说更是不错的选择。但是等你看其它的参考资料的时候,你会发现很多书上的main函数都会带有参数:main (int argc,char *argv[])
这看上去确实很奇怪,不过等你学完函数的知识,你会发现main函数也没有什么。简单的来说就是带有两个参数,第一个参数是一个整形变量,第二个参数是一个指向字符串的指针数组。唯一可能会让人感觉疑惑的就是程序运行,谁来调用它们?答案很简单:操作系统来调用,并给它们赋值。
现在的操作系统都是图形化的,参数的调用基本都隐藏起来,不过可以借助DOS来理解:
在DOS操作系统中输入这样的命令:C:>可执行文件名 参数参数……;
操作系统调用C语言的程序也是这样调用的。第一个参数argc代表命令中参数的个数,文件名也算上。argv就是存储这些参数的。为了验证结果的真实性,我写了一个示例程序将参数argv的结果输出:
程序:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
for(int i=0; i<argc; i++)
{
cout<<argv[i]<<endl;
}
return 0;
}
将程序结果放入D盘,进入windows控制台,用命令运行该程序,结果如图:
我一共输入四个参数,算上程序名,刚好5个。也就是说在运行test.exe程序的时候,操作系统调用test的主函数main,并对其赋值。第一个参数argc的数值为五,第二参数agrv相当于二维数组,每一行存一个参数,共五行。大家可以试试!
int main()
{
return 0;
}
上边的框架没有任何问题,对于初学者来说更是不错的选择。但是等你看其它的参考资料的时候,你会发现很多书上的main函数都会带有参数:main (int argc,char *argv[])
这看上去确实很奇怪,不过等你学完函数的知识,你会发现main函数也没有什么。简单的来说就是带有两个参数,第一个参数是一个整形变量,第二个参数是一个指向字符串的指针数组。唯一可能会让人感觉疑惑的就是程序运行,谁来调用它们?答案很简单:操作系统来调用,并给它们赋值。
现在的操作系统都是图形化的,参数的调用基本都隐藏起来,不过可以借助DOS来理解:
在DOS操作系统中输入这样的命令:C:>可执行文件名 参数参数……;
操作系统调用C语言的程序也是这样调用的。第一个参数argc代表命令中参数的个数,文件名也算上。argv就是存储这些参数的。为了验证结果的真实性,我写了一个示例程序将参数argv的结果输出:
程序:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
for(int i=0; i<argc; i++)
{
cout<<argv[i]<<endl;
}
return 0;
}
将程序结果放入D盘,进入windows控制台,用命令运行该程序,结果如图:
我一共输入四个参数,算上程序名,刚好5个。也就是说在运行test.exe程序的时候,操作系统调用test的主函数main,并对其赋值。第一个参数argc的数值为五,第二参数agrv相当于二维数组,每一行存一个参数,共五行。大家可以试试!
相关文章推荐
- main(int argc,char **argv)参数解析
- main (int argc,char *argv[ ]) 与 getopt
- main()函数的参数 int main(int argc, char* argv[])
- main(int argc , char *argv[])使用
- main(int argc, char **argv)
- [c language] getopt 其参数optind 及其main(int argc, char **argv) 参数解释
- 关于main(int argc, char* argv[])
- VS添加命令行参数main(int argc, char** argv)
- main(int argc, char **argv)参数argc,argv说明和指向指针的指针变量
- 解决main(int argc, char * argv[])参数有空格问题 2011.09.23
- 主函数main中变量(int argc,char *argv[])的含义
- int main(int argc, char* argv[])用法解析
- 主函数main中变量(int argc,char *argv[])的含义。。。
- main(int argc,char **argv)
- 主函数main中变量( int argc,char **argv )的含义
- C语言中main( int argc, char *argv[] )和getopt()函数学习
- 主函数main中变量(int argc,char *argv[])的含义
- 简单的main(int argc, char* argv[])
- main(int argc, char ** argv)形参的理解与使用
- main(int argc, char **argv)中argc和argv的具体含义,以及操作系统如何处理它们