转载自:点击链接
链接2

加qq1126137994 微信:liu1126137994 一起学习更多技术!!!

最近学习服务器网络编程,遇到了一个问题,main函数的参数,特意整理资料记录之!!!

下面是一个带参数的main函数!

#include <iostream.h>int main(int argc,char *argv[])
{for(inti=0;i<argc;i++){cout<<argv[i]<<'\t';              //}return0;
}
/*int argc, char **argv 用于运行时,把命令行参数传入主程序。argc -- 命令行参数总个数,包括 可执行程序名。argv[i] -- 第 i 个参数。argv[0] -- 可执行程序名。*/

关于带参数的main函数网络收集:
int main(int argc,char **argv) 这里面的**argv含义··
是用来传递参数的,假如你编译成的文件名是a.exe,那么在命令提示符下可以通过a.exe12 34来向程序传递参数,这时两个参数就会传递到字符串数组argv中,注意此时实际传递了三个参数,第一个参数是文件名,第二个参数是12,第三个是34,而argc就是参数个数。

int argc, char **argv 用于运行时,把命令行参数传入主程序。argc -- 命令行参数 总个数,包括 可执行程序名。argv[i] --  第 i 个参数。argv[0] -- 可执行程序名。// 例如运行:abc.exeargc 等于 1, argv[0] 是 "abc.exe"// 例如运行:rec.exe  4  5.2argc 等于 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".主函数里若有:int x;float y;char s[80];strcpy(s,argv[0]);  // 程序名存入 了 ssscanf(argv[1],"%d",&x);  // x 得到数值4sscanf(argv[2],"%f",&y);  // y 得到数值 5.2

搜集了一下C和C++中常见的几种形式:

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

(1)是(3)的简写。不推荐使用。
(2)是(3)的简写。在C++中是正确的形式。
(3)在C和C++中都是正确的形式。推荐使用。(还有缺省int的main(void)形式)。
(4)和(5)是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。
(6)是(7)的另外写法。两种都可以,凭个人爱好。
(7)是带参数的正确的形式。推荐使用。
(8)是一种很少用的写法,且受系统限制。
(9)一般不认为是正确的写法。但是在嵌入式系统中有使用(包括void main()形式)

由于main函数不能被其它函数调用,因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。

DOS提示符下命令行的一般形式为:

 C:\>可执行文件名  参数  参数……;  

但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。

例如有命令行为:

  C:\>E24  BASIC  foxpro  FORTRAN

argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图所示:

再例如运行下面的程序:
本例是显示命令行中输入的参数。如果上例的可执行文件名为lyy.exe,存放在A驱动器的盘内。因此输入的命令

C:>a:lyy BASIC foxpro FORTRAN

main(int argc,char *argv){while(argc-->1)printf("%s\n",*++argv);
return 0;
}

则运行结果为:

BASIC

foxpro

FORTRAN

该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次argv值减1,当argv等于1时停止循环,共循环三次,因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、三次循环分别打印后二个字符串。而参数lyy是文件名,不必输出。

main函数的参数的含义相关推荐

  1. C++ main函数中参数argc和argv含义及用法( argument count和 argument vector)

    rgc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写(注意:不是argument value的缩写,自己以前理解错了), ...

  2. 【C/C++】main函数之参数argc和argv含义及用法

    初识argc和argv,对其用法甚是困惑,偶得大神"-牧野-"之总结,犹如醍醐灌顶,故转载分享如下,供更多博友学习. argc 是 argument count的缩写,表示传入ma ...

  3. (转)C++ main函数中参数argc和argv含义及用法

    原博地址:https://blog.csdn.net/dcrmg/article/details/51987413 argc 是 argument count的缩写,表示传入main函数的参数个数: ...

  4. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  5. main函数的参数argc和argv

    一.main()函数参数 通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C9 ...

  6. [C/C++基础知识] main函数的参数argc和argv

    该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是vo ...

  7. C++ main函数中参数argc和argv相关定义与研究

    最近在研究opencv代码,在读取图上时遇到了一些问题.因此把它总结一下,方便学习. argc 则是 argument count的缩写,表示传入main函数的参数个数: argv 则是 argume ...

  8. c语言中argc的作用,C语言中main函数的参数argc和argv

    参考资料: C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* arg ...

  9. C语言main函数的参数

    在我们之前编写的C程序中,main函数是没有参数的,但是在实际开发中,main函数一般都需要参数,没有参数的情况极少. main函数的参数是从命令提示符下执行程序的时候传入,例如ls 命令. 在以上示 ...

最新文章

  1. mysql+dump+选项_mysqldump 备份常用选项以及备份脚本
  2. 目标检测--RON: Reverse Connection with Objectness Prior Networks for Object Detection
  3. Android调试的必杀技——反汇编
  4. python读取一个图像_从图像处理python的文件中读取多个图像
  5. [导入]javascript总结
  6. 教你精确编写高质量高性能的MySQL语法
  7. wikioi 1294 全排列 dfs
  8. Java基础---分支结构(if--else / switch---case)
  9. python列表迭代器_python迭代器生成器-迭代器和list区别
  10. python32位系统下载_pythonwin下载-PythonWin 32位(Python集成开发环境) 3.6 官方版 - 河东下载站...
  11. stp网页浏览器2.0版本
  12. python元组定义_python定义元组
  13. Spring Framework究竟是什么? [关闭]
  14. 大端模式和小端模式之“终极记忆”
  15. 中国车牌号的识别大全
  16. app提示已到期_有了这个App的提醒,再也不用担心商品什么时候过期啦
  17. 产品读书《六顶思考帽》
  18. Menu键_subMenu设置
  19. mix2刷android p教程,小米MIX2Android P使用谷歌相机教程
  20. nexus私服无法下载jar包

热门文章

  1. leetcode第860题柠檬水找零
  2. db2import详解_DB2 import 与 load的区别
  3. JAVA仓库管理系统
  4. 大学生入学面试时怎么称述自己的学校经历
  5. mysql 判断当前星期_mysql 获取当前日期周一和周日
  6. Android 10 4G网络不能校时问题分析
  7. 【最短路算法】dijkstra,SPFA和folyd
  8. 中国大学MOOC-陈越、何钦铭-数据结构 Saving James Bond - Easy Version
  9. 物联网,人工智能专业毕业论文选题推荐
  10. vue 事件修饰符 按键修饰符