C语言---main函数的实现

main()函数的相关知识

main函数其实是有参数的:
int main(int argc , char* argv[],char* envp[])
这里有三个参数 :
第一个:argc是个整形变量,表示命令行参数的个数(含第一个参数,就是含.exe的字符)
第二个:argv是个字符指针的数组,每个元素是一个字符指针,指向一个字符串,这些字符串就是命令行中的每一个参数
第三个:envp是字符指针的数组,数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针

int main(int argc, char* argv[], char* envp[])
{
    int i=0;
    for(i=0; i<argc; i++)
    {
        printf("%s\n",argv[i]);
    }
    return 0;
}

这里的输出结果是可执行程序的.exe文件的路径
在argv数组的最后一个元素存放的是NULL,这是argv数组的结束标志

int main(int argc,char* argv[],char* envp[])
{
    int i=0;
    while(envp[i] != NULL)
    {
        printf("%s\n",envp[i]);
        i++;
    }
    return 0;
}

在这里输出的结果是环境变量
envp数组的最后一个元素也存放的是NULL指针
题目
1.使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
例如:命令行参数输入:test.exe -a 1 2
执行1+2输出3

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
//加法
int add(int a, int b)
{
    return a + b;
}
//减法
int sub(int a, int b)
{
    return a - b;
}
//乘法
int mul(int a, int b)
{
    return a*b;
}
//除法
int div(int a, int b)
{
    return a / b;
}
int main()
{
    int x,  y;
    int input = 1;
    int ret = 0;
    int(*p[5])(int x, int y) = { 0, add, sub, mul, div };//转移表
    while (input){
        printf("************************************\n");
        printf("  1:add                    2:sub    \n");
        printf("  3:mul                    4:div    \n");
        printf("************************************\n");
        printf("请选择:");
        scanf("%d", &input);
        if ((input<=4 && input>=1)){
            printf("输入操作数:");
            scanf("%d %d", &x, &y);
            ret = (*p[input])(x, y);
        }
        else

            printf("输入有误\n");
            printf("ret=%d\n", ret);
        }
    getchar();
    return 0;
}

运行结果如下:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值