【C语言】main函数解析

一、前言

在学习编程的过程中,我们很早就接触到了main函数。在Linux系统中,当你运行一个可执行文件(例如 ./a.out)时,如果需要传入参数,就需要了解main函数的用法。本文将详细解析main函数的参数,并通过代码示例展示如何使用这些参数。

二、main函数解析

main函数的标准形式如下:

c 复制代码
int main(int argc,char* argv[])

也可以写成

c 复制代码
int main(int argc,char** argv)

通常我们更习惯使用第一种形式。

参数说明

  1. argc:表示程序运行时发送给main函数的命令行参数的个数(包括可执行程序以及传参)。
  2. argv[]:是字符指针数组,它的每个元素都是字符指针,指向命令行中每个参数的第一个字符。
  • argv[0]指向可执行程序。
  • argv[1]指向可执行程序后的第一个字符串。
  • argv[2]指向可执行程序后的第二个字符串 。
  • argv[3]指向可执行程序后的第三个字符串 。
  • argv[argc]为NULL。

三、代码示例

c 复制代码
#include <stdio.h>

int main(int argc,char *argv[])
{
    printf("argc = %d\n",argc);
   while(argc--){
       printf("argv = %s\n",*argv);
       argv++;
   }
    
    for(int i=0;i<argc;i++){
        printf("argv[%d]= %s\n",i, argv[i]);
    }
    return 1;
}

示例运行

假设编译出来的程序名为test,运行是传入一下参数:

c 复制代码
./test 123 abc

输出结果

四、应用场景

通过main函数的参数,我们可以在运行程序时动态地传入参数。这在以下场景中非常有用:

  1. 运行时配置:通过命令行参数传递配置信息,例如日志级别、运行模式等。
  2. 启动其他进程:当通过代码启动另一个进程时,可以通过这种方式传递参数。
相关推荐
吃个早饭2 小时前
2025年第十六届蓝桥杯大赛软件赛C/C++大学B组题解
c语言·c++·蓝桥杯
qwertyuiop_i3 小时前
pe文件二进制解析(用c/c++解析一个二进制pe文件)
c语言·c++·pe文件
我叫珂蛋儿吖5 小时前
[redis进阶六]详解redis作为缓存&&分布式锁
运维·c语言·数据库·c++·redis·分布式·缓存
周Echo周5 小时前
20、map和set、unordered_map、un_ordered_set的复现
c语言·开发语言·数据结构·c++·算法·leetcode·list
安装虚拟机的老师傅6 小时前
【2025最新】Windows系统装VSCode搭建C/C++开发环境(附带所有安装包)
c语言·windows·vscode·其他
真的想上岸啊6 小时前
c语言第一个小游戏:贪吃蛇小游戏06
c语言·算法·链表
hardStudy_h7 小时前
C程序的存储空间分配
c语言·开发语言
h汉堡8 小时前
C/C++内存管理
java·c语言·开发语言·c++·学习
水水沝淼㵘8 小时前
嵌入式开发学习日志(数据结构--顺序结构单链表)Day19
linux·服务器·c语言·数据结构·学习·算法·排序算法
yutian06069 小时前
C语言中的宏
c语言·开发语言