C/C++基础:main函数的参数argc和argv
转载:
https://blog.csdn.net/Eastmount/article/details/20413773
一.main()函数参数
通常我们在写主函数时都是void main()或int main() {..return 0;},但ANSI-C(美国国家标准协会,C的第一个标准ANSI发布)在C89/C99中main()函数主要形式为:
(1).int main(void)
(2).int main(int argc,char *argv[]) = int main(int argc,char **argv).
其参数argc和argv用于运行时,把命令行参数传入主程序.其中ARG是指arguments,即参数.具体含义如下:
(参照Arguments to main和C++ Primer7.2.6节)
(1).int argc:英文名为arguments count(参数计数)
count of cmd line args,运行程序传送给main函数的命令行参数总个数,包括可执行程序名,其中当argc=1时表示只有一个程序名称,此时存储在argv[0]中.
(2).char **argv:英文名为arguments value/vector(参数值)
pointer to table of cmd line args,字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数,空格分隔参数,其长度为argc.数组下标从0开始,argv[argc]=NULL.
argv[0] 指向程序运行时的全路径名
argv[1] 指向程序在DOS命令中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
argv[argc] 为NULL.
例如:
#include <stdio.h>
#include <stdlib.h> // 声明
double getArea(r, PI); int main(int argc,char *args[]){
double r = ;
double Area = ;
double PI = atof(args[]);
printf("当前PI值为:%f\n", PI);
printf("输入半径R:");
scanf("%lf", &r);
Area = getArea(r, PI);
printf("面积为:%f\n", Area);
return ;
} // 计算面积
double getArea(double r, double PI){
double area = ;
area = PI * r * r;
return area;
}
二.源代码中的argc与argv
由于C程序必须有main()函数为入口,而且它不能被其他函数调用(可以调用自身),因此不能再程序内部取得实际值.那么在何处把实参赋值给main函数的形参呢?这就需要调用"运行"或"DOS提示符",在调用可执行程序exe时,编译器会帮助我们将输入参数的信息放入main函数的参数列表中传参.
最新文章
- 史上最全的maven的pom.xml文件详解
- spring通过静态方法获得properties文件的值
- AIX 环境下Telnet返回提示所有端口已经被占用,处理方法
- Git提交基本流程
- [css] CSS相对定位|绝对定位
- Json的序列化和反序列化
- java分派
- jquery easy ui 1.3.4 数据表格(DataGrid)(8)
- wordpress插入腾讯视频的方法
- Seven-Segment LED Display Example Design an 8-to-1 multiplexer.
- Guava 10-散列
- ASCII码详解
- HTML 表单提交 的简单代码
- 2D多边形碰撞器优化器
- 一个备份MySQL数据库的简单Shell脚本(转)
- BadgeView使用介绍
- 全方位分析Objcetive-C Runtime
- POJ3436 Command Network [最小树形图]
- 标定版制作(棋盘、圆点、aruco等)
- Oracle树形查询
热门文章
- 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?
- leetcood学习笔记-3-无重复字符的最长子串
- [JZOJ3400] 【GDOI2014模拟】旅行
- duilib教程之duilib入门简明教程11.部分bug
- Http学习(二)
- Pascal 排序算法
- centos7 将home目录空间扩容到根目录
- POJ 2954 /// 皮克定理+叉积求三角形面积
- NTT FWT(xor or and) 模板
- iOS开发系列-文件上传