当前位置: 首页 > 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( ) 函数的参数,有时开发⼯具会⾃动⽣成, 有时会⼿动删除,这些内容在程序编译时系统会⾃动进⾏相应的设置。

相关文章:

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

一、问题 在使⽤⼀些开发⼯具⽣成C语⾔⽂件时&#xff0c;主函数 mian( ) 中会有参数&#xff0c;这个参数到底是怎么回事⼉呢&#xff1f; 二、解答 mian( ) 称为主函数&#xff0c;是所有程序运⾏的⼊口。 mian( ) 函数是由系统调⽤的&#xff0c;当处于操作命令状态下&…...

汽车 - 什么是车轮抱死

车轮抱死分为两种情况&#xff0c;一种是车辆故障层面&#xff0c;另一种是驾驶过程中的物理现象。我们先来说最通俗的刹车车轮抱死吧。 刹车制动车轮抱死 车轮停止轴向转动就是抱死&#xff0c;有速度的情况下抱死车轮&#xff0c;如果车辆的惯性动能大于轮胎抓地力&#xff0…...

环保设备统一管理系统

在环保意识日益增强的今天&#xff0c;企业如何有效管理环保设备&#xff0c;确保其正常运行&#xff0c;减少环境污染&#xff0c;成为了一个重要议题。HiWoo Cloud平台以其独特的环保设备统一管理系统&#xff0c;为企业提供了一套完整的解决方案&#xff0c;帮助企业实现绿色…...

python 11Pandas数据可视化实验

实验目的&#xff1a; 学会使用Pandas操作数据集&#xff0c;并进行可视化。 数据集描述&#xff1a; 该数据集是CNKI中与“中药毒理反应”相关的文献信息&#xff0c;包含文章题目、作者、来源&#xff08;出版社&#xff09;、摘要、发表时间等信息。 实验要求&#xff1…...

【JUC】并发编程 AQS,ReentryLock,CyclicBarrier,CountDownLatch 原理总结

AQS AQS是什么&#xff1f;重写AQS就能实现锁的效果&#xff1f; AQS是一个抽象类&#xff0c;是一个并发包的基础组件&#xff0c;用来实现各种锁&#xff0c;同步组件的工具&#xff08;通过volatile cas进行实现&#xff09;。它包含了共享成员变量state、等待队列、条件…...

移动端底层事件(如左滑返回事件)在同一个路由下不同页面需要不同的处理要怎样才能做到统一处理?

目录 一、问题 二、解决方法 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.测试提了个bug:进入了一个模块A里面的子页面 a1,左滑后按照用户预期应该是返回到模块A,结果回到了app首页。 二、解决方法 1.一开始&#xff1a;啊&#xff0c;…...

hive中开窗函数row_number的使用

row_number()函数介绍 row_number()开窗函数的一种&#xff0c;和over()函数结合一起使用&#xff0c;可以实现对数据的分组和排序。 使用示例 现在有一张表&#xff0c;数据如下 ----------------------- | Year | Region | Sales | ----------------------- | 2022 | E…...

华为数据之道第三部分导读

目录 导读 第三部分 第7章 打造“数字孪生”的数据全量感知能力 “全量、无接触”的数据感知能力框架 数据感知能力的需求起源&#xff1a;数字孪生 数据感知能力架构 基于物理世界的“硬感知”能力 “硬感知”能力的分类 “硬感知”能力在华为的实践 基于数字世界的…...

【Qt】常用控件(一)

文章目录 一、核心属性1、enabled代码示例: 通过按钮2 切换按钮1 的禁用状态 2、geometry代码示例: 控制按钮的位置代码示例&#xff1a;window frame 的影响代码示例: 感受 geometry 和 frameGeometry 的区别 3、windowTitle4、windowIcon代码示例: 通过 qrc 管理图片作为图标…...

Python基础之流程控制语句

在Python中流程控制语句包括条件控制语句、循环语句、以及控制流程循环语句等,下面我们就来详细介绍一下这些语句的使用。 条件语句 首先我们来看条件语句,条件语句是需要根据不同的判断条件来执行不同的代码操作,如下所示。 if 条件1:执行语句块1 elif 条件2:执行语句块…...

2024蓝桥杯网络安全部分赛题wp

爬虫协议 题目给了提示访问robots.txt 会出三个目录 访问最后一个 点进去就flag{22560c15-577c-4c8b-9944-815473758bad} packet 下载附件&#xff0c;这个是流量包 放wireshark流量分析 搜http协议 发现有cat flag命令&#xff0c;直接看他返回的流量 最后base64解码即可…...

Android版本依赖Version catalog

曾经我们使用config.gradle文件进行版本依赖配置&#xff0c;然后在project的build.gradle.kts中使用如下方式引入&#xff1a; apply(from "./config.gradle") 缺点&#xff1a;在project的module中引用无任何提示&#xff0c;无法跳转到指定引用 一、创建versio…...

Redis---------实现商品秒杀业务,包括唯一ID,超卖问题,分布式锁

订单ID必须是唯一 唯一ID构成&#xff1a; 代码生成唯一ID&#xff1a; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.tim…...

C++之QT文本处理QDir、QFileDialog、QStringList、QFile

一、相应的头文件 #include <QFileDialog> #include <QDir> #include <QStringList> 二、简介 1.QFileDialog 实际效果如下&#xff1a;比如需要选择打开的文件夹或者文件名&#xff0c;通过调用资源管理器的方式进行可视化操作。 代码示例为&#xff1a…...

24.5.8数据结构|单向循环链表

一、理解原理&#xff1a; 初始状态&#xff1a; 1、对比前两种的不同之处 1&#xff09;保存到栈空间&#xff08;局部变量&#xff09;。静态初始化。 2&#xff09; 二、代码实现 1、initLinkLoop函数 疑问&#xff1a; 1、地址怎么处理&#xff1f; 注意&#xff1…...

2024年,抖音小店开通需要多少钱?一篇详解!

大家好&#xff0c;我是电商糖果 2024年了&#xff0c;想在抖音开店卖货的朋友越来越多。 主要原因还是看到&#xff0c;这几年在抖音上赚到钱的人越来越多。 于是大家在今年比较关心的问题&#xff0c;就是抖音小店开通需要多少钱&#xff1f; 糖果做抖音小店四年了&#…...

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷1(私有云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…...

Python数据可视化------地图

基础地图使用 # 地图基本演示 # 导包 from pyecharts.charts import Map from pyecharts.options import TitleOpts, VisualMapOpts# 准备地图对象 cmap Map() # 准备数据&#xff08;列表&#xff09; data [("北京市", 99), ("上海市", 199), ("…...

Rust中的并发性:Sync 和 Send Traits

在并发的世界中&#xff0c;最常见的并发安全问题就是数据竞争&#xff0c;也就是两个线程同时对一个变量进行读写操作。但当你在 Safe Rust 中写出有数据竞争的代码时&#xff0c;编译器会直接拒绝编译。那么它是靠什么魔法做到的呢&#xff1f; 这就不得不谈 Send 和 Sync 这…...

|Python新手小白中级教程|第二十七章:面向对象编程(示例操作)(3)使用turtle库与类结合

文章目录 前言一、项目&#xff1a;使用类Circle画出圆形&#xff08;不调用turtle库&#xff09;1.基础指令class2.使用turtle画出大圆与小圆3.使用其他功能画一只眼睛 二、使用turtle库画正方形总结 前言 hello&#xff0c;我是BoBo仔&#xff0c;welcome来看我的文章 这节课…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...