📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

有关main函数的参数探究

创建时间2018-07-23最后修改2018-07-23原位置/程序员成长之旅/C语言/笔记/字数561图片/附件9
目录:程序员成长之旅/C语言/笔记

平时变成都会有主函数main

习惯这么写

#include<stdio.h>
int main()
{
        printf("Hello word\n");
        return 0;
}

然而完整形式的main函数是这样的

#include<stdio.h>
int main(int argc,char* argv[])
{
        printf("Hello word\n");
        return 0;
}

那么他们是干什么用的呢

在linux系统中 命令是可以加参数的

例如

ls
ls -l
ls -l -a

这样的 可以实现不同的功能

我们的c语言也可以接受这样的参数

其中 int argc 可以获取 一共给予了多少个参数

#include<stdio.h>
int main(int argc,char* argv[])
{
        printf("argc is %d",argc);
        return 0;
}

运行截图

🖼 图片占位(归档模式)图片见原始导出:%E6%9C%89%E5%85%B3main%E5%87%BD%E6%95%B0%E7%9A%84%E5%8F%82%E6%95%B0%E6%8E%A2%E7%A9%B6.assets/4f348043-e200-46d6-bfd5-de055d68f254.jpg

可以看到 后面不加参数 argc的值为1

加参数后argc值就是 参数的数量+1

(参数和参数之间判定条件是空格)

那么argv数组就显而易见是存放参数的

测试代码

#include<stdio.h>
int main(int argc,char* argv[])
{
        for(int i=0;argc>i;i++){
                printf("argc %d is %s\n",i,argv[i]);
                }
        return 0;
}
🖼 图片占位(归档模式)图片见原始导出:%E6%9C%89%E5%85%B3main%E5%87%BD%E6%95%B0%E7%9A%84%E5%8F%82%E6%95%B0%E6%8E%A2%E7%A9%B6.assets/b535a306-d8ef-48bc-ab61-e973da35ed6a.jpg

可以看到除了第一个argc[0]以外 是按照输入顺序排放在数组中的

可以通过调用函数组 干很多事情

附件