本文介绍C和C++中main()函数的参数和返回值.
1. main()函数的参数
现代C或C++代码的main()
函数中,一般有两个参数:整形argv
,字符串数组argc[]
.
int main(int argv, char* argc[])
下面通过示例说明这两个参数的作用.
使用 C 代码
main.c
#include<stdio.h>
int main(int argv, char* argc[])
{
printf("argv is %d\n", argv);
int i;
for(i=0; i<argv; i++){
printf("argc[%d] is %s\n", argv, argc[i]);
}
return 0;
}
$ gcc main.c -o main
或者,使用 C++ 代码
main.cpp
#include<iostream>
#include<stdlib.h>
using namespace std;
int main(int argv, char* argc[])
{
cout << argv << endl;
int i;
for(i=0; i<argv; i++){
cout << argc[i] <<endl;
}
return 0;
}
$ g++ main.cpp -o main
得到可执行文件 main
,执行并分别带不同的参数
$ ./main
argv is 1
argc[1] is ./main
$ ./main -a
argv is 2
argc[2] is ./main
argc[2] is -a
$ ./main -a asdf
argv is 3
argc[3] is ./main
argc[3] is -a
argc[3] is asdf
$ ./main -a asdf qwer
argv is 4
argc[4] is ./main
argc[4] is -a
argc[4] is asdf
argc[4] is qwer
argv
表示执行mian()
函数时命令行中的参数数量,argc[]
是参数的值(也就是参数的内容)组成的字符串数组.
- 当不带参数时,
argv
为1,argc[0]
只有一个元素,就是可执行文件的名称; - 当带有参数时,
argv
为参数数量加一,argc[]
从第二个元素开始分别为参数的字符串.
2. main()函数的返回值
在main()
函数执行完退出时还会返回一个整形数值.
int main(int argv, char* argc[])
{
//
//
return 0;
}
下面通过示例说明返回值的作用.
当 return
为 0
时
$ ./main
argv is 1
argc[1] is ./main
$ echo $?
0
&&
表示若前一个命令返回值为0则执行下一条命令,否则终止执行.
$ ./main && echo "main has no fault"
argv is 1
argc[1] is ./main
main has no fault
当 return
为 1
时
$ ./main
1
./main
$ echo $?
1
$ ./main && echo "main has no fault"
1
./main