在示例程序中经常可以看到argc和argv这两个参数 ,在调试代码过程中遇到main函数为int main( int argc, char* argv[] ) 这种类型时往往会报错,或者是运行起来了但命令窗口一闪而过,没有出来结果。网 上关于这方面的资料也有点乱,现结合网上内容并予以实验,整理如下:
带形参的main函数,如 main( int argc, char* argv[], char **env ) ,是UNIX、Linux以及Mac OS操作系统中C/C++的main函数标准写法,并且是血统最纯正的main函数写法。
在如今的Visual Studio编译器中,main()函数带有参数argc和argv或者不带,即无论是否在函数体中使用argc和argv,返回值为void或不为void,都是合法的。
即至少有如下三种写法合法:

1、返回值为整型带参的main函数

int main( int argc, char** argv )
{ //函数体内使用或不使用argc和argv都可……return 0;
}

2、返回值为整型不带参的main函数

int main()
{ return 0;
}

3、返回值为void且不带参的main函数

void main()
{ ……
}

一、argc、argv的具体含义

argc和argv参数在用命令行编译程序时有用。main( int argc, char* argv[], char * * env ) 中
第一个参数,int型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数,在VS中默认值为1。
第二个参数,char*型的argv[],为字符串数组,用来存放指向的字符串参数的指针数组,每一个元素指向一个参数。各成员含义如下:
对于.\test.exe asd asd asd asd asd asd asd
argv[0]指向程序运行的全路径名
argv[1]指向在DOS命令行中执行程序名后的第一个字符串
argv[2]指向执行程序名后的第二个字符串
argv[3]指向执行程序名后的第三个字符串
argv[4]指向执行程序名后的第四个字符串
argv[5]指向执行程序名后的第五个字符串
argv[6]指向执行程序名后的第六个字符串
argv[7]指向执行程序名后的第七个字符串
argv[argc]为NULL
第三个参数,char * * 型的env,为字符串数组。env[]的每一个元素都包含ENVVAR=value形式的字符串,其中ENVVAR为环境变量,value为其对应的值。平时使用到的比较少。

#include <iostream>
using namespace std;int main(int argc, char const *argv[])
{cout<<"argc: "<<argc<<endl;for(int i=0;i<=argc;++i){cout<<i<<"  ";cout<<argv[i]<<"   ";       printf("%s\n",argv[i]);}return 0;
}

关于int main( int argc, char* argv[] ) 中arg和argv参数理解相关推荐

  1. C语言 | C语言中main函数:int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试

    ================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  2. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  3. c语言argc和argv的作用,c语言中int main(int argc, char argv)中argc和argv的作用

    摘要:我们在开发C语言时,经常看到int main(int argc, char *argv[]),但是没有太多的关注于argc和argv这两个参数,其实它们有很多的作用呢. 编写一个计算器 为了简单 ...

  4. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  5. 关于int main(int argc,char *argv[])

    在int main(int argc,char *argv[])中的int argc和char *argv[]都是用来在命令行里传递参数.在Linux环境下用的最多,Windows环境下一般用得较少. ...

  6. int main(int argc,char* argv[])讲解

            分类:            学习笔记2011-11-07 21:502354人阅读评论(0)收藏举报 dos编译器pathunixcommandc 在最近学习中老是遇到  int m ...

  7. C/C++—— int main(int argc,char* argv[])讲解

    转自:http://blog.csdn.net/what1136075171/article/details/6945664 int main(int argc,char* argv[]) argc是 ...

  8. VS2013 int main(int argc, char** argv)参数传递

    VS2013带命令行参数的调试方法 在C++函数参数传递中,我们知道,main函数是演示C++程序如何向函数传递数组的好例子.一般来说,我们定义的的大多main函数都只有空的形参列表: int mai ...

  9. int main(int argc,char* argv[])详解

    argc是命令行总的参数个数      argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,比如: 1 int main(int argc, char* ...

最新文章

  1. HTML5 localStorage本地存储
  2. 在Angular里使用rxjs的异步API - Observable
  3. C语言——字符串函数
  4. php查看mysql最近执行过的sql_PHP获取MySQL执行sql语句的查询时间
  5. oracle增量脚本(记录)创建触发器监控对一张表的增删改
  6. python安装request失败_在python 虚拟环境下使用命令pip install -r request 安装软件失败?...
  7. win7能装mysql_win764位系统怎么安装mysql
  8. 反向题在测试问卷信效度_防御方式问卷 (DSQ)信度和效度研究
  9. 安装最新版SopCast 0.4.1
  10. React实现todos
  11. ES6重要知识点总结
  12. arcgis js for JavaScript 4.X 移动轨迹动画
  13. python 去除水印_cv2 去除图片水印
  14. hdu_1720 A+B Comeing
  15. 抖音账号如何打造,抖音直播带货怎么做:国仁楠哥
  16. linux startx无效_Linux使用startx不能进入图形界面解决方案
  17. 游戏接入SDK系列之org.jf.util.ExceptionWithContext: Unsigned short value out of range
  18. 考试管理系统-刷题系统案题目选项编写
  19. 编辑为什么建议转投_SCI编辑建议转投容易录用吗
  20. python对象介绍

热门文章

  1. 爆款入门 | 微生物组-扩增子16S分析和可视化(线上/线下同时开课,2022.4)
  2. JGG:北大陈峰+陈宁揭示维生素A缺陷小鼠中多因素对肠道菌群的调节作用
  3. Science Bulletin:绝对丰度的植物根际微生物群落“扩增-选择”模型
  4. 收藏|56张图片带您认识细菌长啥样?
  5. Nature:拟南芥微生物组功能研究
  6. ggplot2笔记6:标度、轴和图例
  7. 删除 此电脑 文件夹
  8. 宏基因组分析实战教程1. 背景知识
  9. pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format)
  10. Seaborn在图像内自定义图例(legend)位置实战