在一些IDE如C-free创建一个C语言的工程时,默认的一个C程序是这样的:
1
2
3
4
5
6
#include
int main(int argc, char *argv[])
{
return
0;
}
以前一直不知道main函数里面的两个参数有什么作用,后来在《the c programming
language》(一本学习C语言的好书)里面知道这两个函数分别是什么了。argc记录的是程序命令行参数的个数,argv是一个字符指针数组,保存
了指向各个参数的字符指针。注意:程序路径是第一个参数。
比如你运行下面的C代码:
1
2
3
4
5
6
7
8
#include
int main(int argc, char *argv[])
{
printf("%d\n",argc);
printf("%s\n",argv[0]);
return
0;
}
程序运行的结果如下:
1
2
1
G:\socket\test\MinGW3.4.5\test.exe
你可能会说main函数怎么会用参数?一般来说刚学C语言的时候我们并不会使用到这两个参数。不过在windows命令行,或者文字界面的linux里面,这两个参数就显得非常重要了。比如我们在cmd下执行ping命令时,会使用
ping + 网站域名,比如:
1
ping dabentu.com
这里一共有两个命令行参数,第一个数程序的路径名,第二个就是字符串“dabentu.com”,argc[1]保存了指向它的字符指针。程序就是通过argc知道程序有几个参数,再通过argv里的指针访问这些参数。看下面的test程序,将它的命令行参数反序输出:
#include
int main(int argc, char *argv[])
{
while(argc > 1){
printf("%s\n",argv[argc-1]);
argc–;
}
return 0;
}
输出结果:
1
2
3
4
5
6
7
//我们在命令行执行下面的命令
C:\Users\acer>test 1 2 3 4
//这是它的输出
4
3
2
1
这里没有输出它的第一个参数,也就是程序的路径名。
现在你应该知道了main函数两个参数的意义了,第一个保存了命令行参数的个数,第二个保存了指向各个参数的指针。如果还是不明白,可以去网上搜索更加详细的资料,再配合具体的代码来理解。:)
若非注明,均为原创文章,转载请注明: 转载自大 笨 兔 | 博客