带参数的main函数


在学习C语言时,一般常见的main函数是这样的

int main(void)
{
    int a,b;
    printf("please input a number:");
    scanf("%d",&a);
    printf("\nplease input another number:");
    scanf("%d",&b);
    printf("sum is %d\n");
    return 0;
}

上面是个简单的求和函数,简单易懂,但有个缺点,程序运行时需要和用户交互(一次次询问输入数据),操作起来不便捷。能不能像shell命令行那样在调用函数时一次把参数都输进去呢?答案是有的
main函数可以带两个参数int argc, char *argv[] (名字可随意取,但类型必须一致,C语言规定)。因此原型如下 int main(int argc,char *argv[ ]).
其中:argc为参数个数(不需要用户输入,系统会根据后面输入参数的个数自动填充)
argv[] 则用以保存后续输入的参数,只能是char类型。个人感觉和shell的命令行很像
我们都知道main函数是入口函数,不能被其它任何函数调用,那么参数怎么传递进去呢?这个和shell很像,假设我有个可执行的test文件,在我执行它时,只要在后面空个格 依次输入参数就好了~
就像这样:test hello world !
这样一共有四个参数:文件名“test”和“hello””world” “!”
相应的argc为4。不需要调用时输入,系统会自动根据后面参数补上。
下面就测试下吧,代码如下:(测试环境:ubuntu)

int main(int argc, char *argv[])
{
        int i;
        printf("argc = %d\n",argc);//输出参数个数
        printf("argv is :\n");//依次输出参数
        for(i = 0;i < argc;i++)
                printf("%s\n",argv[i]);
        return 0;
}

文件保存为test_main.c。然后用gcc编译下
gcc -o test_main test_main.c
这样就生成了可执行的文件 test_main 了,执行./test_main 程序便运行
这里写图片描述
这个我虽然没有输入任何参数,但程序却获得了一个参数,argc = 1 argv[0] = “./test_main”。这就是刚才说的,文件名就是它的第一个参数。

然后执行./test_main Hello World ! 试试
这里写图片描述
四个参数,分别是:“./test_main”“Hello” “World”“!”

这样利用main的参数可以直接在调用命令时输入相应的参数,不用来回输入了 是不是很方便~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值