转载:

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函数的参数列表中传参.

最新文章

  1. 史上最全的maven的pom.xml文件详解
  2. spring通过静态方法获得properties文件的值
  3. AIX 环境下Telnet返回提示所有端口已经被占用,处理方法
  4. Git提交基本流程
  5. [css] CSS相对定位|绝对定位
  6. Json的序列化和反序列化
  7. java分派
  8. jquery easy ui 1.3.4 数据表格(DataGrid)(8)
  9. wordpress插入腾讯视频的方法
  10. Seven-Segment LED Display Example Design an 8-to-1 multiplexer.
  11. Guava 10-散列
  12. ASCII码详解
  13. HTML 表单提交 的简单代码
  14. 2D多边形碰撞器优化器
  15. 一个备份MySQL数据库的简单Shell脚本(转)
  16. BadgeView使用介绍
  17. 全方位分析Objcetive-C Runtime
  18. POJ3436 Command Network [最小树形图]
  19. 标定版制作(棋盘、圆点、aruco等)
  20. Oracle树形查询

热门文章

  1. 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?
  2. leetcood学习笔记-3-无重复字符的最长子串
  3. [JZOJ3400] 【GDOI2014模拟】旅行
  4. duilib教程之duilib入门简明教程11.部分bug
  5. Http学习(二)
  6. Pascal 排序算法
  7. centos7 将home目录空间扩容到根目录
  8. POJ 2954 /// 皮克定理+叉积求三角形面积
  9. NTT FWT(xor or and) 模板
  10. iOS开发系列-文件上传