main函数参数详解

2023-11-04

一、参数形式

(1)int main()
(2)int main(void)
(3)int main(int, char**)
(4)int main(int, char*[])
(5)int main(int argc, char **argv)
(6)int main(int argc, char *argv[])
(7)int main( int argc, char *argv[], char*envp[])
(8)void main(void)

通常适用main函数形式:int main(),也就是不带参数的,ANSI-C(C89/C99)发布的主要形式为:

int main(void)

int main(int argc, char **argv) == int main(int argc, char *argv[])

其中第一个参数argc表示运行程序传递给main函数的命令行参数总个数,参数与参数之间用空格分开,包括可执行程序的名称,也就是argc最小值为1,只有一个程序名称;

第二个参数是一个字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个命令行参数,数组下标元素从0开始,argv[0]存放的是可执行程序名称,argv[1]和argv[2]分别存放第二个命令行参数和第三个命令行参数。

int main(int argc, char *argv[], char *envp[]),不经常使用,前两个参数表示同上,第三个参数存放的是运行时的环境变量。

二、注意点

main函数不能内部被其他函数调用,它是程序的入口,那么是如何把参数赋值给main函数呢,主要是通过调用执行等,系统或编译器传递给main函数。

三、用途

可通过给main函数传参,做一些自定义的操作,比如设置日志路径、日志等级、获取程序版本号、程序以守护进程运行等,类似于程序初始化读取的配置文件。

用c++编写一些linux的命令工具等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

main函数参数详解 的相关文章

随机推荐

  • MySQL生产环境部署架构

    MySQL生产环境部署架构 常用的分库分表架构 按业务id分库分表 建立索引映射表同时进行分库分表 数据同步到ES做复杂搜索 分库分表下如何分页 假设用户现在要查询自己的订单 同时订单要求要支持分页 该怎么做 方案一 因为同一个用户的订单可
  • 黑客突破防火墙常用的几种技术(转)

    一 防火墙基本原理 首先 我们需要了解一些基本的防火墙实现原理 防火墙目前主要分包过滤 和状态检测的包过滤 应用层代理防火墙 但是他们的基本实现都是类似的 路由器 网卡 防火墙 网卡 内部网络 防火墙一般有两个以上的网络卡 一个连到外部 r
  • 使用SSM框架进行Crud时后台出现javax.validation.UnexpectedTypeException: HV000030: No validator could be found

    1 处理之前的效果 2 原因是 Java实体类中属性是Integer类型 用了 NotBlank判断不能为空 而这个注解是判断字符串是否为空 3 解决办法 去掉 NotBlank注解 使用 NotNull 两者的区别 1 NotNull 适
  • ClassLoader.getSystemResource("") 为空的原因

    在idea自带的tomcat中 运行正常 发布到tomcat下获取为空 现修改成类 class getClassLoader getResource 获取方式
  • Vue整体架构分解

    Vue js的整体架构可以分解为以下几个部分 文章目录 1 数据驱动 2 组件化 3 响应式系统 4 虚拟DOM 5 插件系统 6 单文件组件 7 模板编译 总结 1 数据驱动 Vue的一个核心特点是数据驱动 Vue会在初始化的时候给数据提
  • 【image】src相对地址的引入

    src相对地址的引入 前言 相对路径 src引用 前言 在引入图片的时候 突然发现通过相对地址引入项目内图片不会了 特此在这里记录一下 以便学习 相对路径 使用原因 对于放在一个项目包内的图片资源 通过相对路径可直接引用 绝对路径是对于网络
  • ASP.NET Core 8 的 Web App

    Web App Web App 与 Web API 的不同之处在于包含 UI 部分 所谓的 UI 就是 HTML 页面 Web App 支持几种渲染HTML 的方式 服务端渲染 客户端渲染 混合渲染 服务端渲染 服务端渲染UI是在浏览器请求
  • Spyder闪退的解决过程记录

    安装了高版本的 PYQT5 后 原来安装的 老版本的 spyder打开闪退 考虑是版本不兼容的问题 卸载了spyder 重新安装了最新版 Version 5 3 1的spyder 在anaconda prompt中输入如下命令 pip un
  • 学习安卓应用开发一课一得+计算器

    一 在学习安卓应用开之前要掌握语言 本文章以Java为基础的安卓应用开发 二 Android开发环境配置 三 计算器开发 一 在学习安卓应用开之前要掌握语言 本文章以Java为基础的安卓应用开发 1 在学习Android开发之前 我首先需要
  • 网络编程(附代码)

    网络编程 1 网络通信协议 1 1 协议和七层模型 七层模型 也称为OSI Open System Interconnection 参考模型 是国际标准化组织 ISO 制定的一个用于计算机或通讯系统间互联的标准体系 它是一个七层的 抽象的模
  • MIPI信号的分析--结合示波器实际测试波形

    MIPI已经不陌生了 对于现在的设计中 摄像头接口 显示接口都有MIPI 所以有了CSI和DSI接口 MIPI最早是手机里面的协议 为了形成行业统一标准 MIPI联盟发起MIPI 移动行业处理器接口 作为移动应用处理器制定的开放标准 1 M
  • 深度学习—卷积神经网络(Convolutional Neural Networks)

    卷积神经网络 Convolutional Neural Networks 卷积神经网络 convolutional neural network CNN 是一种专门用来处理具有类似网格结构的数据的神经网络 例如时间序列数据 可以认为是在时间
  • sqli-labs通关详解

    sqli labs通关详解 Less1 Less1sqlmap运用 Less2 Less2sqlmap运用 Less3 sqlmap运用 Less4 sqlmap一把梭 Less5 sqlmap直接梭 Less6 Less7 Less8 s
  • Java对象转换最佳方案

    系统变的复杂 系统的层次划分越来越细 边界也越来越明确 然后每一层之间一般都有自己要处理的领域对象 统称为pojo一般在model或者domain包下 类的后缀不能为pojo 常见的一些模型类型 PO DO 持久层对象 一般和数据库直接打交
  • C语言丨快速排序法

    程序员在程序设计时常常需要对存储在数组中的大量数据进行处理 如排序 查找等 排序是把一系列无序的数据按照特定的顺序 如升序或降序 重新排列为有序序列的过程 对数据进行排序是最重要的应用之一 实际生活中的很多问题都需要对数据进行排序 之前我们
  • 多dex合并进apk

    批量重命名 选中所有 dex结尾的文件 右键批量重命名 Zip命令处理APK 删除原有classes dex zip d demo apk classes dex 添加新的脱壳classes dex zip m demo apk class
  • 什么是回调?

    定义 天天说回调回调 真的了解吗 消息异步为什么要传入回调接口 真的了解了吗 前端 axios 发送请求写的箭头函数全都是回调函数 真的理解了吗 其实回调很简单 就是比如 A 中的方法 a1 调用了 B 中的方法 b1 然后 b1 方法执行
  • ros---键盘控制机器人

    一 前言 无非是解决这几个问题问题 1 teleop py的键盘控制文档的书写 2 机器人模型文件xacro和控制xacro的launch文件的书写 二 问题解决思路 1 首先是teleop py键盘控制代码的书写 你有没有这样的问题 为什
  • 如何查计算机电源功率,手把手教你怎么查看电脑耗电量

    大家都知道 电脑只要在运行中就会产生耗电量 就好比电视机 冰箱 电风扇等等之类的啦 在通电的情况下都会产生耗电量 那么该如何计算电脑耗电量呢 别着急 下面小编就给大家介绍电脑耗电量的查询方法 什么是电脑耗电量呢 小编今天来给你们做一个佛系的
  • main函数参数详解

    一 参数形式 1 int main 2 int main void 3 int main int char 4 int main int char 5 int main int argc char argv 6 int main int a