当前位置: 首页 > news >正文

C语言 main( ) 函数的指针数组形参是怎么回事?

一、问题

        在使⽤⼀些开发⼯具⽣成C语⾔⽂件时,主函数 mian( ) 中会有参数,这个参数到底是怎么回事⼉呢?

二、解答

        mian( ) 称为主函数,是所有程序运⾏的⼊口。 mian( ) 函数是由系统调⽤的,当处于操作命令状态下,输⼊ mian( ) 所在的⽂件名,系统就调⽤ mian( ) 函数。

        我们经常对 mian( ) 函数始终作为主调函数处理,即允许 mian( ) 调⽤其他函数并传递参数。事实上, mian( ) 函数既可以是⽆参函数,也可以是有参函数。对于有参的形式来说,就需要向其传递参数。

        那么, mian( ) 函数的形参的值从何处得到呢?由于其他任何函数均不能调⽤ mian( ) 函数,不能调⽤⾃然也就⽆法向 mian( ) 函数传递参数,只能由程序之外传递⽽来。这个具体的问题怎样解决呢?下⾯先看⼀下 mian( ) 函数的带参的形式:

main(int argc,char *argv[])

        从函数参数的形式上看,包含⼀个整型和⼀个指针数组。当⼀个C的源程序经过编译和链接后,会⽣成扩展名为.exe 的可执⾏⽂件,这是可以在操作系统下直接运⾏的⽂件。 对于 mian( ) 函数来说,其实际参数和命令是⼀起给出的,也就是在⼀个命令⾏中包括命令名和需要传给 main 函数的参数。命令⾏的⼀般形式为:

命令名     参数1    参数2...参数n。

        命令⾏中的命令就是可执⾏⽂件的⽂件名,其后所跟参数需⽤空格分隔,并作为对命 令的进⼀步补充,也即是传递给 mian( ) 函数的参数。命令⾏与 mian( ) 函数的参数存在如下的关系。

        设命令⾏为:

file1 strl str2 str3

        其中 file1 为⽂件名,也就是⼀个由 file1.c 经编译和链接后⽣成的可执⾏⽂件 file1.exe, 其后各跟3个参数。以上命令⾏与 mian( ) 函数中的形式参数关系如下。

        它的参数 argc 记录了命令⾏中命令与参数的个数(file1、str1、str2、 str3),共4个, 指针数组的⼤⼩由参数的值决定,即为 char *argv[4],该指针数组的取值情况如图所示。

         输出 main( ) 函数参数内容。

#include <stdio.h>
main(int argc, char *argv[])
{printf("The list of parameter:\n");while (argc > 1){++argv;printf("%s\n", *argv);--argc;}
}

        输⼊内容如下所示

Microsoft Windows [版本 5.2.3790] 
〈C〉 版权所有 1985-2003 Microsoft Corp.
C:\Docunents and Settings\Administrator>d:tc\0720 hello mingri I love China

        程序运⾏结果如下所示

Invalid keyboard code specified
The list of paraneter:
hello
mingri
love
ChinaC:\DOGUME~1\ADMINI~1)

三、总结

        对于⼀般程序的开发,我们不会去关⼼ main( ) 函数的参数,有时开发⼯具会⾃动⽣成, 有时会⼿动删除,这些内容在程序编译时系统会⾃动进⾏相应的设置。

http://www.lryc.cn/news/343536.html

相关文章:

  • 汽车 - 什么是车轮抱死
  • 环保设备统一管理系统
  • python 11Pandas数据可视化实验
  • 【JUC】并发编程 AQS,ReentryLock,CyclicBarrier,CountDownLatch 原理总结
  • 移动端底层事件(如左滑返回事件)在同一个路由下不同页面需要不同的处理要怎样才能做到统一处理?
  • hive中开窗函数row_number的使用
  • 华为数据之道第三部分导读
  • 【Qt】常用控件(一)
  • Python基础之流程控制语句
  • 2024蓝桥杯网络安全部分赛题wp
  • Android版本依赖Version catalog
  • Redis---------实现商品秒杀业务,包括唯一ID,超卖问题,分布式锁
  • C++之QT文本处理QDir、QFileDialog、QStringList、QFile
  • 24.5.8数据结构|单向循环链表
  • 2024年,抖音小店开通需要多少钱?一篇详解!
  • 2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷1(私有云)
  • Python数据可视化------地图
  • Rust中的并发性:Sync 和 Send Traits
  • |Python新手小白中级教程|第二十七章:面向对象编程(示例操作)(3)使用turtle库与类结合
  • Android OpenMAX(五)高通OMX Core实现
  • XXE漏洞
  • [华为OD]C卷 BFS 亲子游戏 200
  • 大模型微调实战之强化学习 贝尔曼方程及价值函数(五)
  • 初探MFC程序混合使用QT
  • 【LeetCode题库】1068. 产品销售分析 I —— MySQL 性能提升,using()关键字
  • leetcode 1 ~ 100
  • 分享6个免费下载电子书的网站
  • typescript的入门到吐槽:看了typescript,发现前端真的卷,
  • 抖店商品详情API接口,商品上架(主图,价格,sku等属性,)item_get-获得抖店商品详情
  • STM32使用ADC单/多通道检测数据