一、主函数参数缺省
int main()
二、主函数参数不缺省
int main(int argc, char **argv)
int main(int argc, char* argv[])
//两种写法效果一样
2.1参数解释
- argc:编译程序时,输出参数的个数+1(加的这个参数为主程序名称);
- argv:指向这些参数的指针参数
三、Demo示例
3.1 demo1
demo1文件夹下编写主程序main.cpp,其中main.cpp的代码如下:
#include<iostream>
using namespace std;
int main( int argc , char** argv ){
cout << "The argv is : "<< endl ;
for(int i=0 ; i<argc ; i++)
cout << argv[i] << endl ;
cout << "the argc is : "<< argc << endl ;
return 0;
}
在终端编译:
g++ main.cpp -o main
在终端运行目标文件
./main 'Automatic' 'driving' 'test'
结果如下:
./main 'Automatic' 'driving' 'test'
The argv is :
./main
Automatic
driving
test
3.2 demo2
demo1文件夹下编写主程序main.cpp,其中main.cpp的代码如下:
#include <iostream>
using namespace std;
double power(double base,double exponent)
{
int res=base;
if(base==1)
{
return 1;
}
for(int i=1;i<exponent;i++)
{
res=res*base;
}
return res;
}
int main(int argc,char *argv[])
{
if(argc<3)
{
cout<<"Usage:"<<argv[0]<<endl;
return 1;
}
double base =atof(argv[1]);
int exponent=atoi(argv[2]);
cout<<"result"<<endl<<power(base,exponent)<<'\n';
return 0;
}
在终端编译:
g++ main.cpp -o main
在终端运行目标文件
./main 2 3
结果如下:
./main 2 3
result
8