C/C++中呼吁行参数的道理
很早以前的dos应用措施中,我们常常会用呼吁行参数执行应用措施譬喻:
copy c:\1.txt d:\
在c/c++中,呼吁行参数的通报是操作main举办形参通报实现的
前面的教程中我们劈面都举办了void main()可能是void main(void)的界说,这暗示main不返回任何范例,和main不带有任何参数,但在缺剩状态下mian()这样形式下,形式参数一直是存在在栈空间内的只是埋没了起来。
为了实现呼吁行参数我们将利用main(int argc,char* argv[])这样的形式举办界说argc和argv可以换成你本身喜欢的名称,不必然要用argv,argc这些形式只是习惯罢了,char* argv[]我们前面已经报告过,这就是一个指向指针数组,argv就是一个指针数组名,argv不是常量指针,而是具备变量特性的变量指针,它是可以移动的,由此我们可以改写成char* *argv也是正确的,int argc这个界说返回的将是参数的个数所以标志为整形(int)。
#include <iostream>
#include <string>
using namespace std;
void main(int argc,char* argv[])
{
int i=0;
while(i<argc)
{
cout<<*argv++<<endl;//这里改写成cout<<argv[i]<<endl;也是正确的
i++;
}
cin.get();
}
在呼吁行参数的提交中,系统会自动给指针数组后加上一个NULL,所以代码可以写成如下简朴形式,简化代码提高效率。
#include <iostream>
#include <string>
using namespace std;
void main(int argc,char* argv[])
{
while(*argv!=NULL)//这里写成while(*argv)也是正确的!
{
cout<<*argv++<<endl;
}
cin.get();
}
最后我们说一下完整的呼吁行参数的原形:void main(int argc,char* argv[],char* env[])
env用的很少,凡是是用干事件的返回,这里就不接头了,详细的可以查询书籍。
void main(int argc)省略其它参数的界说也是可以的,这样运行时候就直接返回参数个数学,而不返回其它。
运行呼吁行参数带有char* argv[]的时候,假如输入参数带有空名目,应该用双引号阔起来。
譬喻 test4.exe "hello world!" ha ha