【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. 启动其他进程:当通过代码启动另一个进程时,可以通过这种方式传递参数。
相关推荐
香水5只用六神几秒前
【RTOS快速入门】05_动态_静态创建任务(2)
c语言·stm32·单片机·嵌入式硬件·freertos·rtos·嵌入式软件
香水5只用六神11 分钟前
【RTOS快速入门】06_任务状态理论讲解(1)
c语言·stm32·单片机·嵌入式硬件·freertos·rtos·嵌入式软件
Sylvia-girl12 分钟前
C语言-1入门
c语言·开发语言
智者知已应修善业1 小时前
【无序数组指针交换2则】2024-10-28
c语言·数据结构·c++·经验分享·笔记·算法
炸膛坦客1 小时前
单片机/C语言八股:(十二)C 语言中 malloc 和 free 用法(动态分配内存)
c语言·单片机·嵌入式硬件
一叶落4381 小时前
LeetCode 136. 只出现一次的数字(C语言详解 | 哈希表 + 排序 + 位运算)
c语言·数据结构·算法·leetcode·哈希算法·散列表
古译汉书1 小时前
【数据结构算法】二分查找
c语言·开发语言·数据结构·c++·算法
小龙报1 小时前
【算法通关指南:算法基础篇】二分答案专题:1.木材加工 2.砍树
c语言·数据结构·c++·算法·启发式算法
炸膛坦客1 小时前
单片机/C语言八股:(十一)指针的补充,包括指针的类型和大小
c语言·开发语言·单片机
故以往之不谏1 小时前
算法专题--数组二分查找--Leetcode704题
c语言·开发语言·c++·算法·新人首发