首页 > 运维 > linux运维 > 正文

c语言main函数里的参数argv和argc解析

爱谁谁
发布: 2025-07-22 12:32:12
原创
735人浏览过

前言

通常,我们在编写main函数时,习惯于不带参数的写法。然而,标准的main函数应包含两个参数:argc和argv。那么,这两个参数的意义和使用方法是什么呢?本文将为您详细讲解main函数中这两个参数的用法,帮助您理解这种写法的含义。

main函数的返回值及其意义

01 函数为何需要返回值

在设计函数时,参数和返回值是必不可少的部分。参数是函数的输入,而返回值则是函数的输出。由于函数需要向外输出数据(即运行结果),因此需要返回值。函数被调用时,返回值作为函数结果返回给调用者。总之,函数的返回值是为调用者提供一个结果值。

立即学习C语言免费学习笔记(深入)”;

02 main函数的调用者

(1) main函数是一个特殊的函数,名字本身具有特殊性。在C语言中,main函数被指定为程序的入口点。其它函数只有被main函数直接或间接调用时才会执行,如果未被main函数调用,则在整个程序中无用。

(2) 从某种角度来看,main函数代表了当前程序的整体。main函数的开始标志着整个程序的执行开始,而其结束返回则标志着整个程序的结束。

(3) 执行这个程序的实体就是main函数的调用者。

03 Linux下程序执行的本质

(1) 在Linux中,通过命令行输入./xx来执行一个可执行程序。

(2) 我们可以使用shell脚本来调用和执行一个程序(后续将展示一个shell脚本)。

(3) 在程序中也可以通过fork和exec来调用执行一个程序,这在Linux应用编程的文章中有详细介绍,参考《Linux系统下进程编程之exec族函数解析(四)》。

(4) 尽管有多个执行程序的方法,但其本质是相同的。在Linux中,执行一个新程序意味着创建、加载、运行并最终终止一个进程。新进程是由父进程通过fork创建的。

(5) 命令行本身是一个进程(即我们在Linux中打开的一个终端)。在命令行中执行./xx时,新程序作为命令行进程的子进程运行。总之,一个程序由其父进程调用。

(6) 总结:main函数的返回值传递给调用它的父进程。父进程为何需要这个返回值?父进程通过调用子进程执行任务,子进程完成后通过main函数的返回值向父进程反馈执行结果(0表示成功,负数表示失败)。

04 实践验证获取main函数的返回值

(1) 使用shell脚本执行程序并获取返回值:

#include <stdio.h>
int main(void)
{
    return 0;
}
登录后复制

然后创建一个shell脚本:

c语言main函数里的参数argv和argc解析

shell脚本内容如下:

#!/bin/sh
./a.out
echo $?
登录后复制

执行结果为:

c语言main函数里的参数argv和argc解析

说明:在Linux shell中,$?符号用于存储和表示上一个程序的执行结果(这里是./a.out)。#!/bin/sh是编写shell脚本的标准格式。

argc和argv的解析

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人

01 main函数的标准写法

标准的main函数写法有三种:

int main(void)
int main(int argc, char **argv)
int main(int argc, char *argv[])
登录后复制

02 main函数的参数来源

(1) main函数所在程序的父进程向main函数传递参数,并接收其返回值。

03 main函数为何需要参数

(1) 虽然main函数可以不带参数,即父进程调用子进程并传递参数并非必须。int main(void)这种形式即为不传递参数。

(2) 有时为了增加程序的灵活性,我们希望在执行程序时通过参数来控制程序的运行,达到无需重新编译就能改变程序运行结果的效果。下面以一个简单程序为例,展示这种灵活性:

c语言main函数里的参数argv和argc解析

如果要修改程序内容,必须更改源代码,这种灵活性不够。接下来,我们将通过向main函数传递参数来提高程序的灵活性。

04 如何向main函数传递参数

(1) 通过argc和argv这两个C语言预定义的参数来实现。

(2) argc是一个int类型,表示在运行程序时传递给main函数的参数个数;argv是一个字符串数组,用于存储多个字符串,每个字符串即为传递给main函数的一个参数。argv[0]是第一个参数,argv[1]是第二个参数,以此类推。

c语言main函数里的参数argv和argc解析

运行结果:

c语言main函数里的参数argv和argc解析

然后在执行程序时,可以添加参数:

c语言main函数里的参数argv和argc解析

注意:

(1) main函数的参数都是通过字符串形式传递的。

(2) 程序被调用时,各参数之间用空格分隔。

(3) 在程序内部使用argv时,最好先检查argc的值。

总结

今天的分享就到这里,关于shell脚本的教程,未来将会有专门的系列文章进行详细讲解。

以上就是c语言main函数里的参数argv和argc解析的详细内容,更多请关注php中文网其它相关文章!

C语言速学教程(入门到精通)
C语言速学教程(入门到精通)

C语言怎么学习?C语言怎么入门?C语言在哪学?C语言怎么学才快?不用担心,这里为大家提供了C语言速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号