一 int main(int arg , char* argv[])的简单使用
- main中的这两个参数,第一个是判定执行可执行文件的时候输入的参数的个数,简单的说就是下例中./a.out后面的参数个数,可打印看出arg = 4。
- 而char* arg[]中arg[0],arg[1].....的值为地址,所以打印时应用*arg[i]即可打印结果。
#include "stdio.h"
int main(int arg , char* argv[])//等价于 int main(int arg, char** argv)
{
for(int i = 0; i < arg; i++)
{
printf("Arg = %d\r\n",i);
printf("Argv[i] = %c\r\n",*argv[i]);
}
}
// gcc main.c //编译
// ./a.out a b c d //执行
二 在实际代码中有啥用处?
- 感觉比较有用的是条件执行,可根据输入的参数控制代码的运行部分 。比如下面的代码,输入 gcc main.c ,然后执行./a.out -xx 和./a.out -cc会发现有不同的打印语句。这样在写代码过程中,可能我们有个测试程序,可以通过命令来执行,不用去修改代码,用了就删,下次用还要再写或者拷贝。简单的说就是根据不同的命令执行不同的程序块。
#include "stdio.h"
#include "string.h"
int main(int arg, char* argv[]){
//switch(*arg[1]) switch canot switch(char )
char commod_List[5][10] = {"-xx","-cc"}; //可存放5个字符串,每串最大10个字符
for(int i = 0;i < 5; i++)
{
if (0 == strcmp(argv[1],commod_List[i])) // == 0 means str1 equal str2
{
switch(i)
{
case 0:
printf("this is command -xx\r\n");
break;
case 1:
printf("this is command -cc\r\n");
break;
default:
break;
}
}
}
}