main函数参数及可变参数列表
来源:互联网 发布:蓝牙连接软件 编辑:程序博客网 时间:2024/05/23 00:10
C语言中main函数是程序的入口函数,一般在使用main函数的时候都是不带参数的,那么main函数带上参数又如何呢?
main函数形式:
int main(int argc,char *argv[],char *envp[]){ program;}
可知main函数有三个参数:
1,argc:记录命令行参数的个数(包含第一个参数–可执行文件名),是一个整型变量;
2,argv:表示命令行的每一个参数的字符指针数组,每一个元素是一个字符指针,指向一个字符串;
3,envp:字符指针数组,每一个元素是指向一个环境变量的字符指针(最后一个元素是NULL)。
main函数不能再程序内部取得实际值,它的参数是从操作系统命令行上获取的,
命令行的一般形式为”C:>可执行文件名 参数 参数 参数”。
根据一个实例深入认识一下mian函数的参数:使用main函数的参数,实现一个整数计算器
int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x, int y){ return x / y;}int main(int argc,char *argv[]){ int ret = 0; int ben = 0; int tmp = 0; if (argc != 4) { printf("输入的参数错误\n"); return 1; } ben = atoi(argv[2]);//atoi函数把字符串转化成一个整数值 tmp = atoi(argv[3]); switch (*(argv[1] + 1)) { case 'a': ret = Add(ben, tmp); break; case 's': ret = Sub(ben, tmp); break; case 'm': ret = Mul(ben, tmp); break; case 'd': ret = Div(ben, tmp); break; default : break; }}
argc等于4,argv[]有四个有效参数。
可变参数列表
可变参数列表可以通过宏来实现,定义在stdarg.h头文件中。这个头文件中声明了一个类型va_list 和三个宏——va_start, va_arg, va_e。
使用可变参数,实现函数求未知参数部分n个数中的最大值
#include<stdio.h>#include<stdlib.h>#include <stdarg.h>int Max(int n, ...){ va_list arg;//声明arg变量,用于访问参数列表的未确定的部分 int i = 0; int max = 0; va_start(arg, n);//va_start初始化变量arg,把arg变量设置成指向可变参数列表的第一个参数 int m = va_arg(arg, int);//arg返回参数的值并指向下一个可变参数 for (i = 1; i < n; i++) { max = ((m)>(va_arg(arg, int)) ? (m) : (va_arg(arg, int))); } return max; va_end(arg);}int main(){ int a = 9; int b = 8; int c = 6; int arg = Max(3, a, b, c); printf("%d\n", arg);}
阅读全文
0 0
- main函数参数及可变参数列表
- main函数参数列表
- 可变参数 函数(可变参数列表--1)
- main函数参数_可变参数
- C++:Main函数参数列表及参数类型转换
- 可变参数列表函数实现
- 可变参数列表函数实现
- 可变参数列表函数实现
- 可变参数列表函数实现
- 可变参数列表函数实现
- C可变参数列表函数
- java 函数可变参数列表
- 函数的可变参数列表
- main函数的参数列表
- 可变参数列表及printf函数的实现
- 可变参数列表及printf函数的实现
- 可变参数列表及printf函数的实现
- 可变参数列表及printf函数的实现
- Spring Cloud Eureka
- sql语句的简单优化
- 2017/8/4
- 【物联网】技术导论(入门介绍篇)
- 设置H5页面适应手机屏幕
- main函数参数及可变参数列表
- CentOS中配置lvm存储
- 8.4
- Vue 学习笔记
- Wormholes (弗洛伊德 )
- C++编译与链接
- 指针、++、--前置后置不同运算
- UAa11582--Colossal Fibonacci Numbers!(快速幂)
- 1.4 查找最大或最小的 N 个元素