您的位置:首页 > 编程语言 > C语言/C++

关于c++ Main函数分析与讲解

2013-03-31 00:51 435 查看
在c++的控制台程序开发过程中,很多人对与函数int main(int argc, char* argv[])不甚了解,经常会问一些基础性的问题,刚开始以为只是个别的人不清楚,时间一长,发现不懂的人还是比较多的。当然对于这类情况,很多人选择在DOS下运行,通过切换到当前目录,然后把参数来解决。其实这不是最好的办法,而且每次调试和编译都在DOS下进行,给程序开发带来了诸多的不便,于是写下这篇日记,希望能给那些不甚理解int main(int argc, char* argv[])函数的朋友一个解释,能帮助到你们不甚兴奋。

       首先,来分析这个函数int main(int argc, char* argv[]),该函数是控制台程序的入口程序,C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv,C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。其中argc表示的是main函数接受的参数的个数,argv是参数值。在DOS提示符下命令行的一般形式为: C:\>可执行文件名 参数 参数。     下面,我们来看一个实例,在c++中if( argc == 2 &&  (pImg = cvLoadImage( argv[1], 0)) != 0 )有这个一个判断函数,其中的意思是什么呢?其是判断main函数传进来的参数是不是两个,然后从第二个参数argv[1](数组下标从0开始)给出的路径加载一幅图像,并判断是否成功。但是参数是怎么传进去的呢?很多人都不明白。继续以VC6.0环境为例进行讲解,Main函数的参数是通过“Project-Settings“跳出对话框:

   图中的"Executable for debug session:下面的参数”D:\VCProjects\UltiApp\Debug\UltiApp.exe“表示的就是在DOS提示符下命令行的一般形式为: C:\>可执行文件名,即为main函数传进去的第一个参数argv[0],下面的”123.JPG“就是第二个参数argv[1](如果123.JPG不在当前目录下的话,就要用绝对路径),也即为上面程序pImg = cvLoadImage( argv[1], 0)中传给cvLoadImage的参数argv[1],如果main函数需要传入更多的参数,那么就在Program arguments中输入多个参数,每个参数用空格隔开,如123.JPG 234.JPG等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: