IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++main函数赋予形式参数 -> 正文阅读

[C++知识库]C++main函数赋予形式参数

说明

C/C++程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。其余函数分为有参无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。由于main()不能被其它函数调用,因此不可能在程序内部取得实际值。

那么,在何处把实参值赋予main()的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main()的形参中去。

一般编译器默认使用argcargv两个名称作为main()的参数,但这两个参数如此命名并不是必须的,你可以使用任何符合C++语言命名规范的变量名,但要保证第一个参数类型为int型,第二个参数为char**型

  • argc = argument count :表示传入main函数的数组元素个数,为int类型
  • argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路径。argc至少为1,即argv数组至少包含程序名。

备注:

数组指针是指向数组地址的指针,其本质为指针

指针数组是数组元素为指针的数组(例如int *p[3],定义了p[0],p[1],p[2]三个指针),其本质为数组。

数组指针与指针数组在某些使用情况下很相似,要注意区分

用法声明

main()函数,经常带有参数argcargv,如下:

int main (int argc,char *argv[]){}或者 
int main (int argc,char **argv){} 

从函数参数的形式上看,包含一个整型和一个指针数组。

使用运行

在window系统中,假如编译、链接成的可执行文件为XXX.exe,这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。

首先在C++中完成编译之后,然后命令窗口下切换到XXX.exe所在的文件夹,再在该路径下输入带参数的命令。

在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:

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

此格式也称为命令行。命令行中的命令就是可执行文件的文件名XXX.exe,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

设命令行为:

program str1 str2 str3 str4 str5

其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe

其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv[6],指针数组的取值情况如图6-15所示。

  • argv[0] program
  • argv[1] str1
  • argv[2] str2
  • argv[3] str3
  • argv[4] str4
  • argv[5] str5

举例

下面的程序演示argc和argv的使用:

#include<iostream>
using namespace std;
int main(int argc,char **argv){
    cout << argc << endl;
    for(int i=0;i<argc;i++)
        cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
    return EXIT_SUCCESS;
}

数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。

该程序编译运行成功,产生了XXX.exe文件,在打开DOS窗口,用cd命令进入到XXX.exe文件夹下 ,在DOS下输入如下命令:

image-20220519204909453

参考文献

C++ main函数中参数argc和argv含义及用法_zou_albert的博客-CSDN博客_main函数中argc什么意思

C++ main函数参数_qq_42775938的博客-CSDN博客_c++main函数参数

C++main函数中的形式参数_liuxiangxxl的博客-CSDN博客_c++ main函数参数

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 17:55:54  更:2022-05-24 17:56:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 2:07:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码