zoukankan      html  css  js  c++  java
  • C-main函数剖析。

    对于main函数。我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了。
    首先,我们来看下msdn,这个里面对main()函数有具体的说明。

    这里写图片描写叙述

    在这里,我们能够看到main()函数事实上是含有三个參数的,各自是

    int argc, char *argv[ ], char *envp[ ]

    这三个參数事实上就是main函数的參数。

    在c的编译器中。通常是同意main函数是没有參数的。

    1.argc (argument count)
    这第一个參数是int类型的argc,argc是一个整数。从字面上的意思我们就知道,他说的是给參数计数,指定有多少个參数被传递给命令行的程序。argc至少是1。
    2.argv(argument value)
    argv 第二个參数是一个指向字符串的指针数组。

    命令行中的每一个字符串被存储到内存中,而且分配一个指针指向它。它存放了命令行的參数。


    在通常,系统使用空格把各个字符串隔开,然后把程序本身的名字赋给argv[0],把系统最后一个字符串赋给argv[1]。
    3.envp
    这个不经常使用,用来存放系统的环境变量,而且是以NULL结尾。


    envp能够是char*[]类型也能够是char**类型。本文上面的样例使用的是前者。假设使用宽字符集,则应使用wmain取代main,并使用wchar*[]或wchar**类型的envp,在程序运行过程中,envp所存的环境变量是以字符串数组保存,当程序运行时须要环境变量做參考时就须要它。而且,当你更改了环境变量想要恢复,也能够到这个里面去寻找。

    接下来附上一道关于main函数參数使用的笔试题。

    1.使用main函数的參数,实现一个整数计算器,程序能够接受三个參数,第一个參数“-a”选项运行加法。“-s”选项运行减法,“-m”选项运行乘法,“-d”选项运行除法,后面两个參数为操作数。

    比如:输入test.exe -a 1 2
    运行1+2输出3

    //1.使用main函数的參数,实现一个整数计算器,程序能够接受三个參数,第一个參数“ - a”选项运行加法,“ - s”选项运行减法,“ - m”选项运行乘法,“ - d”选项运行除法,后面两个參数为操作数。
    
    //比如:输入test.exe - a 1 2
    //运行1 + 2输出3
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(int argc,char *argv[])
    {
        int num1 = atoi(argv[2]);
        int num2 = atoi(argv[3]);
        int ret = 0;
        if (strcmp("-a", argv[1]) == 0)
        {
            ret = num1 + num2;
        }
        else if (strcmp("-s", argv[1]) == 0)
        {
            ret = num1 - num2;
        }
        else if (strcmp("-m", argv[1]) == 0)
        {
            ret = num1 * num2;
        }
        else if (strcmp("-d", argv[1]) == 0)
        {
            ret = num1 / num2;
        }
        printf("%d
    ", ret);
        system("pause");
        return 0;
    }
    

    初学小白,希望大家多多提意见!

  • 相关阅读:
    Mac下Mysql启动异常["ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"]
    Appium的前世今生
    appium自动化测试
    ubuntu下nvm,node以及npm的安装与使用
    Android反编译
    Android 常用 adb 命令总结
    Android SDK开发常用工具的使用及其异常处理
    如何获取android app的Activity
    Android 上多方式定位元素(python)
    获得android应用的版本号
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7354273.html
Copyright © 2011-2022 走看看