main函数的参数

前面介绍的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:
main (argc,argv)
int argv;
char *argv[];或写成:
main (int argc,char *argv[])
  由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。

DOS提示符下命令行的一般形式为: C:>可执行文件名 参数 参数……; 但是应该特别注意的是,main 的两个形参和命令行中的参数在
位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。例如有命令行为: C:>E6 24 BASIC dbase FORTRAN由于文件名E6 24本身也算一个参数,所以共有4个参数,因此argc取得的值为4。argv参数是字符串指针数组,其各元素值为命令行中各字符串(参数均按字符串处理)的首地址。 指针数组的长度即为参数个数。数组元素初值由系统自动赋予。其表示如图6.8所示:
main(int argc,char argv){
while(argc–>1)
printf("%s\n",
++argv);
}
本例是显示命令行中输入的参数如果上例的可执行文件名为e24.exe,存放在A驱动器的盘内。
因此输入的命令行为: C:>a:e24 BASIC dBASE FORTRAN
则运行结果为:
BASIC
dBASE
FORTRAN
  该行共有4个参数,执行main时,argc的初值即为4。argv的4个元素分为4个字符串的首地址。执行while语句,每循环一次 argv值减1,当argv等于1时停止循环,共循环三次, 因此共可输出三个参数。在printf函数中,由于打印项*++argv是先加1再打印, 故第一次打印的是argv[1]所指的字符串BASIC。第二、 三次循环分别打印后二个字符串。而参数e24是文件名,不必输出。

下例的命令行中有两个参数,第二个参数20即为输入的n值。在程序中*++argv的值为字符串“20”,然后用函数"atoi"把它换为整型作为while语句中的循环控制变量,输出20个偶数。
#include"stdlib.h"
main(int argc,charargv[]){
int a=0,n;
n=atoi(
++argv);
while(n–) printf("%d ",a++*2);
}
  本程序是从0开始输出n个偶数。指向指针的指针变量如果一个指针变量存放的又是另一个指针变量的地址, 则称这个指针变量为指向指针的指针变量。

main函数带有参数相关推荐

  1. java main函数的参数设置_main函数参数

    C语言通常允许main()函数带有两个参数,可由用户自己命令,但类型是固定的.第一个参数是整型,第二个参数是一个指向字符型指针数组的指针或一个基本类型为字符型的指针数组,此时传给形参的值只能从命令行中 ...

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

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

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

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

  4. C 中 main 函数的参数

          看到不同的人写出的 C 或者 C++ 程序时,可能会出现不一样的 main 函数的定义,下面的几种定义方式都是对的: int main(void)int main(int argc)int ...

  5. main函数的参数详解,它们是何时何处传入的?(main函数的参数值是从操作系统命令行上获得的)

    一般的main函数都是不带参数的,因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这两个参 ...

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

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

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

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

  8. main函数的参数argc和argv

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

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

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

  10. Linux下main函数带参数问题和atoi函数详解

    1.main函数带参数 基本格式:main(int argc,char * argv[]) argc参数保存命令行参数的个数,是整形变量 具体用法可有如下代码看下: a1.c: #include &l ...

最新文章

  1. 面试看缘分php,php测试姓名缘分指数
  2. npm run build生成路径问题
  3. NK3C框架(MyBatis、Durid)连接SQL Server
  4. 机器学习(MACHINE LEARNING)MATLAB非线性曲线拟合方法
  5. PostgreSQL的generate_series函数应用例子
  6. 百度OCR文字识别-Android安全校验
  7. 可能存在无限递归_你为什么学不会递归?读完这篇文章轻松理解递归算法
  8. beginnersbook C 语言示例·翻译完成 | ApacheCN
  9. mock介绍及moco框架搭建使用
  10. Java编程语言的重要性
  11. TeamTalk部署详细教程(最全最新TeamTalk部署教程助你一次部署成功)
  12. ILSVRC-2015 ILSVRC-2017VID数据集下载
  13. plsql 登录提示 丢失msvcr71.dll
  14. unity帧动画事件多次播放
  15. QQ互联第三方登录多应用用户登录打通
  16. Spring Boot启动之Hello World
  17. TypeError: ufunc ‘isinf‘ not supported for the input types, and the inputs could not be safely...
  18. SRS:流媒体服务器如何实现负载均衡
  19. AutoCAD点击打印就卡死,无响应,没反应的解决办法
  20. Magento 批量刷入 Amazon上的产品评论

热门文章

  1. 第三十五课 redis
  2. 实记JLink-V8刷固件方法
  3. oracle数据库恢复aul_Oracle终极数据恢复,孰弱孰强(DUL vs AUL)
  4. 腾讯与360诉讼陷入拉锯战:敬畏同时余火未熄
  5. 铁夫破词之英文名字的由来(总结)
  6. 2021ICPC欧洲东南部区域赛题解ACFGJKLN
  7. pycharm 激活码2018年9月22日亲测有效
  8. 走在边缘地带上的百度,还是差了那么一点!
  9. 今天很兴奋。看到了2个激动人心的技术
  10. addweek oracle_Oracle数据库常用语法