什么是带参数的main函数
在我们眼中的main函数长这样:void main(){} / int main(){},所以有人惊讶的问啦,main还是参数?是的,main函数的实际格式是这样的:
int main(int argc,char *argv[],char* envp[]){}
下面让我来分别介绍一下这三个参数:
1.int argc 是指传给main()函数的命令行参数个数,也就是告诉系统,一共传了几个参数
2.char* argv[]:字符串数组,也就是具体的传的参数都是什么,它由第一个变量统计个数
3.char* envp[]:这个字符串数组传递的是系统的环境变量了。具体什么是环境变量,我们后面再说。这个参数在很多的main介绍都是忽略的,可能是用户序言的不多吧。
十以内加减乘除计算器
既然现在我们已经初步了解了带命令行参数main函数,我们现在就用main函数写一个命令行的十以内加减乘除的计算器吧。
#include<stdio.h>
int main(int argc, char * argv[])
{
int ret = 0;
int num1 = argv[2][0] - '0';
int num2 = argv[3][0] - '0';
int i = 0;
if (argv[1][0] == '-')
{
switch (argv[1][1])
{
case 'a': ret = num1 + num2; break;
case 's': ret = num1 - num2; break;
case 'm':ret = num1*num2; break;
case'd':ret = num1 / num2; break;
default:
break;
}
}
printf(" the result is %d\n", ret);
return 0;
}
建议带命令行的函数在linux下完成调试,会更方便。如果想在vs等windows下的集成开发环境下完成编译,调试。参考:Windows下如何用vs调试带命令行参数的main函数