前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】int main(int argc, const char *argv[])到底是什么?

【C语言】int main(int argc, const char *argv[])到底是什么?

作者头像
自学气象人
发布2023-01-12 17:57:57
1.3K0
发布2023-01-12 17:57:57
举报
文章被收录于专栏:自学气象人自学气象人

我们在C语言中经常看到的main函数都是不带参数的,因此main函数后面都是空括号,形如 int main() 这类。但实际上main函数是可以带参数的,这个参数可以认为是main函数的形式参数。

C语言规定main函数后面的参数只能有两个,习惯上写成argc和argv。所以就出现了标题上见到的形式:int main(int argc, const char *argv[])。

argc

第一个形参argc必须是整型变量,代表命令行总的参数个数。

argv

第二个形参argv必须是是指向字符串的指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。指针数组的长度即为参数个数argc。

示例

给一个如下的C语言程序,叫做test.c

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, const char *argv[])
{
if(3 > argc)
    {
        printf("请喂我更多的参数啦!");
        goto __RETURN;
    }

printf("*argv0=%s\r\n",argv[0]);//\r\n是换行

printf("*argv1=%s\r\n",argv[1]);

int b = atoi(argv[2]);//字符串转整型
printf ("*argv2=%d",b);
__RETURN:
    return 0;
}

通过icc将test.c编译成可执行文件a.out后,在命令行输入:

代码语言:javascript
复制
[zhxia@ess ~/zhxia] $ ./a.out 3 2 21 3 

得到输出如下:

代码语言:javascript
复制
*argv0=./a.out
*argv1=3
*argv2=2

分析

在上面这个示例中, argc=5 argv[0]指向'./a.out' argv[1]指向'3' argv[2]指向'2' argv[3]指向'21' argv[4]指向'3'

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学气象人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • argc
  • argv
  • 示例
  • 分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档